View · view thường và materialized view

View thường đọc bảng gốc mỗi lần, materialized view đọc bản lưu

View thường và materialized view View thường order_totals chỉ lưu câu SELECT: mỗi lần truy vấn, PostgreSQL viết lại thành truy vấn trên bảng gốc orders và order_items nên kết quả luôn mới nhưng không nhanh hơn. Materialized view monthly_revenue chạy truy vấn một lần khi REFRESH và ghi kết quả ra đĩa; truy vấn sau đó đọc bản lưu nên rất nhanh nhưng chỉ mới tới lần REFRESH gần nhất. VIEW THƯỜNG · order_totals Chỉ lưu câu truy vấn MATERIALIZED VIEW · monthly_revenue Lưu sẵn kết quả VIẾT LẠI CHẠY MỖI LẦN CHẠY 1 LẦN GHI KẾT QUẢ ĐỌC BẢN LƯU Truy vấn view SELECT * FROM order_totals Định nghĩa view câu SELECT đã lưu, không chứa dòng nào Bảng gốc orders + order_items JOIN và GROUP BY lại từ đầu Kết quả luôn mới tốn công như tự viết truy vấn Làm mới dữ liệu REFRESH MATERIALIZED VIEW Bảng gốc orders + order_items chỉ được đọc khi REFRESH Bản lưu kết quả trên đĩa 22 dòng, tạo index được Truy vấn materialized view SELECT * FROM monthly_revenue không nhanh hơn, nhưng không bao giờ cũ rất nhanh, nhưng chỉ mới tới lần REFRESH gần nhất © tiennhm