Giới thiệu
Cả hai đều là bản sao logic ảo của dữ liệu từ câu SELECT, nhưng khác biệt cốt lõi在于 việc lưu trữ kết quả và thời điểm cập nhật.
Bảng so sánh chi tiết
| STT | Tiêu chí | View (Khung nhìn) | Materialized View (Khung nhìn vật hóa) |
|---|---|---|---|
| 1 | Định nghĩa | Bản sao logic ảo, kết quả không lưu trữ trên đĩa. Mỗi lần truy vấn đều chạy lại SELECT gốc → dữ liệu luôn mới nhất. | Bản sao logic ảo, kết quả được lưu trữ trên đĩa (bảng vật lý). Truy vấn không chạy lại SELECT gốc → dữ liệu có thể cũ. |
| 2 | Lưu trữ | Chỉ lưu câu truy vấn (query expression) trên đĩa. | Lưu cả câu truy vấn và kết quả (resulting tuples) trên đĩa. |
| 3 | Thực thi truy vấn | Chạy lại query mỗi lần user lấy dữ liệu → luôn cập nhật. | Không chạy lại query mỗi lần → dữ liệu không tự động cập nhật khi bảng gốc thay đổi. |
| 4 | Chi phí | Không tốn dung lượng lưu trữ thêm, không tốn chi phí cập nhật. | Tốn dung lượng lưu trữ và chi phí làm mới (refresh) dữ liệu. |
| 5 | Thiết kế | Kiến trúc cố định, có chuẩn SQL định nghĩa. | Kiến trúc chung, không có chuẩn SQL, triển khai tùy vendor (Oracle, PostgreSQL, SQL Server...). |
| 6 | Sử dụng | Truy cập hiếm, dữ liệu thay đổi thường xuyên. | Truy cập thường xuyên, dữ liệu thay đổi ít (data warehouse, reporting). |
Tóm lại: View = real-time, không tốn lưu trữ. Materialized View = hiệu năng đọc cao, chấp nhận dữ liệu cũ, tốn lưu trữ và bảo trì.