Thứ Tư, 26 tháng 7, 2023

Tìm hiểu View trong MySql là gì?

Trong loạt series này chúng ta sẽ học về View trong MySql. View không phải là một khái niệm riêng của MySQL mà tất cả các hệ quản trị CSDL hiện nay như MSSQL, Oracle, .. đều có hỗ trợ.

Có thể bạn không biết bởi vì trong dự án thực tế ít ai sử dụng đến View, nhưng mình thấy nó rất là hay vì giúp cho trang web load nhanh hơn bình thường, và nhanh chỗ nào thì chúng ta cùng tìm hiểu nó nhé.

Mục lục

  • 1. View trong MySQL là gì?
  • 2. Ưu điểm khi sử dụng View trong MySQL
  • 3. Nhược điểm khi sử dụng View trong MYSQL
  • 4. Database View trong MySql

1. View trong MySQL là gì?

Về mặt ngữ nghĩa thì View giống như là xem hoặc nhìn, nhưng ở khía cạnh hệ quản trị cơ sở dữ liệu thì View có tác dụng giống như tạo một Table ảo với các Fields và Records mà ta có thể tự định nghĩa và khác hoàn tòa với Table gốc.

View có đầy đủ các tính chất của một Table nên ta có thể truy vấn bằng cách sửu dụng các lệnh T-SQL trên nó, không những thế bạn có thể delete và tạo mới View thông qua một câu lệnh đơn giản.

Bài viết này được đăng tại tranvanbinh.vn

Khi ta tạo một View từ một table thì nếu table đó đổi dữ liệu thì mặc nhiên View cũng sẽ thay đổi theo. Điều này thật tuyệt vời vì ta không mất nhiều công sức để cập nhật lại dữ liệu.

Để rõ hơn thì mình lấy một ví dụ thế này: Giả sử trang Frontend có một Block gọi là hiển thị 10 tin mới nhất, như vậy ta sẽ truy vấn lấy 10 tin và sắp xếp giảm dần theo ID. Nhưng bạn biết trong SQL nó sẽ duyệt toàn bộ bảng rồi mới trả về kết quả và điều này làm cho truy vấn trở nên chậm chạm.

Để giải quyết nó thì ta sẽ tạo một View gồm 10 tin mới nhất và lúc hiển thị ra chỉ cần lấy trong View nên tốc độ sẽ nhanh hơn rất nhiều lần.

2. Ưu điểm khi sử dụng View trong MySQL

Sau đây chúng ta sẽ thảo luận về những lợi ích khi sử dụng View nhé.

Khi sử dụng Database View sẽ giúp bạn đơn giản hóa các câu truy vấn phức tạp bởi vì một View được tạo ra bởi một câu truy vấn SQL, nên dữ liệu mà nó lưu trữ ta có thể gọi là thành phẩm của một công đoạn truy vấn nên giải quyết được nhiều vấn đề về tốc độ, đặc biệt là những câu truy vấn JOIN. Bạn có thể sử dụng View để che giấu đi sự phức tạp của mô hình dữ liệu trong hệ thống bởi những gì mà họ thấy chỉ là môt View rất đơn giản.

  • Database View giúp giới hạn dữ liệu cho người sử dụng, nghĩa là một View sẽ có bấy nhiêu dữ liệu thôi và người dùng chỉ được thấy con số bấy nhiêu đó. Ngoài ra khi tạo View bạn có thể gán quyền truy cập sử dụng cho một nhóm nào đó. Tôi lấy một ví dụ thực tế như sau, giả sử hệ thống của bạn có phần danh sách hóa đơn và bạn muốn những nhân viên trong bộ phận Kế Toán được phép xem các hóa đơn trong tháng này thôi. Như vậy bạn sẽ tạo một View và dữ liệu của nó là danh sách hóa đơn của tháng hiện tại, sau đó gán quyền vào nhóm Kế Toán này.
  • Database View giúp tăng tính bảo mật hơn bởi vì View chi đọc mà không ghi được (Read Only) nên việc hacker tấn công cập nhật dữ liệu là điều không thể.
  • Database View cho phép tăng hoặc giảm các Fields tùy theo yêu cầu sử dụng bởi vì nó được tạo từ một câu truy vấn SELECT nên bạn có thể JOIN nhiều Table lại với nhau và lưu vào View.
  • Database View tăng khả năng phát triển lại ứng dụng hoặc tương thích với nhiều ứng dụng chạy chung một CSDL. Ví dụ như bạn có một hệ thống dữ liệu khách hàng và một này nào đó bạn cần đổi cấu trúc thì lúc này trong Source của bạn phải đổi theo. Nhưng nếu sử dụng View thì ta có thể hạn chế được việc này.

3. Nhược điểm khi sử dụng View trong MYSQL

Ưu điểm có thì đương nhiên nhược điểm cũng phải có. Và sau đây là những nhược điểm của Database View.

  • Khi truy vấn trong View có thể sẽ chậm hơn trong table
  • Bị phụ thuộc vào Table gốc, nếu Table gốc thay đổi cấu trúc thì đòi hỏi View cũng phải thiết kế lại cho phù hợp

4. Database View trong MySql

MYSQL có hỗ trợ View nhưng từ phiên bản 5.X mới có và hầu hết những đặc tính của nó theo chuẩn View của năm năm 2003.

MYSQL sẽ lưu file lưu trữ View với tên là view_name.frm-00001, sau này bạn cập nhật lại bố cục của nó thì nó sẽ lưu lại là view_name.frm-00002 và cứ tăng dần như thế.

Để hiểu rõ hơn thì có lẽ bạn phải chờ xem bài sau nhé, ở bài sau ta sẽ học cách tạo View trong MYSQL.

Bài đầu tiên này chúng ta chỉ tìm hiểu khái niệm View trong MySql là gì thôi nên cũng không có gì nhiều, đa số là lý thuyết. Ở các bài sau chúng ta sẽ tìm hiểu sâu hơn và đi vào từng dòng lệnh cụ thể hơn. Mời các bạn theo dõi.

=============================
* KHOÁ HỌC ORACLE DATABASE A-Z ENTERPRISE trực tiếp từ tôi giúp bạn bước đầu trở thành những chuyên gia DBA, đủ kinh nghiệm đi thi chứng chỉ OA/OCP, đặc biệt là rất nhiều kinh nghiệm, bí kíp thực chiến trên các hệ thống Core tại VN chỉ sau 1 khoá học.
* CÁCH ĐĂNG KÝ: Gõ (.) hoặc để lại số điện thoại hoặc inbox https://m.me/tranvanbinh.vn hoặc Hotline/Zalo 090.29.12.888
* Chi tiết tham khảo:
https://bit.ly/oaz_w
=============================
KẾT NỐI VỚI CHUYÊN GIA TRẦN VĂN BÌNH:
📧 Mail: binhoracle@gmail.com
☎️ Mobile/Zalo: 0902912888
👨 Facebook: https://www.facebook.com/BinhOracleMaster
👨 Inbox Messenger: https://m.me/101036604657441 (profile)
👨 Fanpage: https://www.facebook.com/tranvanbinh.vn
👨 Inbox Fanpage: https://m.me/tranvanbinh.vn
👨👩 Group FB: https://www.facebook.com/groups/DBAVietNam
👨 Website: https://www.tranvanbinh.vn
👨 Blogger: https://tranvanbinhmaster.blogspot.com
🎬 Youtube: https://www.youtube.com/@binhguru
👨 Tiktok: https://www.tiktok.com/@binhguru
👨 Linkin: https://www.linkedin.com/in/binhoracle
👨 Twitter: https://twitter.com/binhguru
👨 Podcast: https://www.podbean.com/pu/pbblog-eskre-5f82d6
👨 Địa chỉ: Tòa nhà Sun Square - 21 Lê Đức Thọ - Phường Mỹ Đình 1 - Quận Nam Từ Liêm - TP.Hà Nội

=============================
Tìm hiểu View trong MySql là gì?, oracle tutorial, học oracle database, Tự học Oracle, Tài liệu Oracle 12c tiếng Việt, Hướng dẫn sử dụng Oracle Database, Oracle SQL cơ bản, Oracle SQL là gì, Khóa học Oracle Hà Nội, Học chứng chỉ Oracle ở đầu, Khóa học Oracle online,sql tutorial, khóa học pl/sql tutorial, học dba, học dba ở việt nam, khóa học dba, khóa học dba sql, tài liệu học dba oracle, Khóa học Oracle online, học oracle sql, học oracle ở đâu tphcm, học oracle bắt đầu từ đâu, học oracle ở hà nội, oracle database tutorial, oracle database 12c, oracle database là gì, oracle database 11g, oracle download, oracle database 19c, oracle dba tutorial, oracle tunning, sql tunning , oracle 12c, oracle multitenant, Container Databases (CDB), Pluggable Databases (PDB), oracle cloud, oracle security, oracle fga, audit_trail,oracle RAC, ASM, oracle dataguard, oracle goldengate, mview, oracle exadata, oracle oca, oracle ocp, oracle ocm , oracle weblogic, postgresql tutorial, mysql tutorial, mariadb tutorial, ms sql server tutorial, nosql, mongodb tutorial, oci, cloud, middleware tutorial, hoc solaris tutorial, hoc linux tutorial, hoc aix tutorial, unix tutorial, securecrt, xshell, mobaxterm, putty

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master