Có 2 loại views:
1. Materialised view (hay còn gọi tắt là mview): đây là view có chứa dữ liệu, hay nói cái khác là nó có data segment để lưu dữ liệu. Đối với loại view này, chúng ta cần phải có job chạy định kỳ để update lại dữ liệu.
Thường dùng khi query data qua database link hay csdl phân tán,…
2. View thông thường: Đây là view thường được nhắc tới nhất.
Điều đầu tiên cần phải biết đó là nó KHÔNG chứa dữ liệu, cho nên, ko có chuyện phải “update” lại data cho view.
Về bản chất nó chỉ là 1 câu query được lưu vào trong database, thay vì bạn lưu thành file trên đĩa cứng, và đặt cho nó mộ cái tên.
Lợi ích của view: Cái này thì nhiều lắm, có thể kể ra như sau:
-
Làm đơn giản hóa những câu query phức tạp.
-
Phân quyền trên dòng, trên cột: Như đã biết thì việc phân quyền trên cả table là ko khó, hầu như csdl nào cũng hổ trợ, tuy nhiên việc phân quyền trên dòng thì phức tạp hơn nhiều, trên cột còn khó khăn hơn. Vì vậy người ta tạo view với những cột và miền dư liệu nhất định, sau đó grant quyền cho user truy cập vào view thay vì truy cập trực tiếp vào table.
-
Tăng perfomance: Khi chúng ta execute 1 câu query, database engine sẽ thự hiện 1 loạt các thao tác như kiểm tra syntax, tables, columns, quyền truy cập, optimize, tạo execution plan,… cái này gọi là HARD PARSE, tuy nhiên, khi chúng ta gọi view, một số bước trong quá trình trên có thể được loại trừ (SOFT PARSE) nên dẫn đến việc câu lệnh được thực thi nhanh hơn.
- Ngoài ra còn nhiều thứ khác, bạn có thể google để tham khảo.