Architektur Fortgeschritten
Materialized Views — vorberechnete Ansichten¶
Materialized ViewsPerformanceCQRS 3 Min. Lesezeit
Materialized Views für die Leseleistung. PostgreSQL und event-driven Aktualisierung.
PostgreSQL¶
CREATE MATERIALIZED VIEW order_summary AS
SELECT c.id, c.name, COUNT(o.id) as orders, SUM(o.total) as total
FROM customers c LEFT JOIN orders o ON c.id = o.customer_id
GROUP BY c.id, c.name;
CREATE UNIQUE INDEX idx_os_cust ON order_summary(id);
REFRESH MATERIALIZED VIEW CONCURRENTLY order_summary;
Event-Driven¶
eventBus.on('OrderCreated', async (e) => {
await db.query(\`
INSERT INTO order_summary (customer_id, orders, total)
VALUES ($1, 1, $2)
ON CONFLICT (customer_id) DO UPDATE SET
orders = order_summary.orders + 1,
total = order_summary.total + $2
\`, [e.customerId, e.total]);
});
Zusammenfassung¶
Materialized Views = wesentliche Leseoptimierung. Wägen Sie den Trade-off zwischen Aktualität und Performance ab.
Brauchen Sie Hilfe bei der Implementierung?¶
Unser Team hat Erfahrung mit dem Entwurf und der Implementierung moderner Architekturen. Wir helfen Ihnen gerne.