Přeskočit na obsah
_CORE
AI & Agentic Systems Core Informační Systémy Cloud & Platform Engineering Data Platforma & Integrace Security & Compliance QA, Testing & Observability IoT, Automatizace & Robotika Mobile & Digital Banky & Finance Pojišťovnictví Veřejná správa Obrana & Bezpečnost Zdravotnictví Energetika & Utility Telco & Média Průmysl & Výroba Logistika & E-commerce Retail & Loyalty
Reference Technologie Blog Knowledge Base O nás Spolupráce Kariéra
Pojďme to probrat

Materialized Views — předpočítané pohledy

01. 01. 2024 1 min čtení intermediate

Architektura Pokročilý

Materialized Views — předpočítané pohledy

Materialized ViewsPerformanceCQRS 3 min čtení

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