Architektura
Pokročilý
Materialized Views — předpočítané pohledy
Materialized views pro výkon čtení. PostgreSQL a event-driven aktualizace.
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]);
});
Shrnutí
Materialized views = zásadní optimalizace čtení. Zvažte freshness vs performance trade-off.
Potřebujete pomoct s implementací?
Náš tým má zkušenosti s návrhem a implementací moderních architektur. Rádi vám pomůžeme.
Nezávazná konzultace