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

Giới thiệu Mysql Stored Procedure là gì?

Đây là bài đầu tiên trong loạt series học Stored Procedure trong Mysql. Trong bài này chúng ta sẽ tìm hiểu khái niệm Store Procedure là gì? Các ưu điểm và nhược điểm của nó và ứng dụng của nó trong thực tế nói chung và trong lập trình website nói riêng.

Có lẽ bạn chưa biết là trong MySQL cũng có những hàm xử lý chuỗi, câu lệnh if else, lệnh switch case và những hàm hỗ trợ khác như replace, count, concat. Vậy tại sao những hàm này lại được ít sử dụng như vây? Lý do đơn giản là Mysql dùng cho ứng dụng website nên thông thường chúng ta chỉ viết những lệnh đơn giản như SELECT, UPDATE, DELETE là chính. Chỉ có những CMS như Joomla họ mới sử dụng vì họ cần sự tối ưu trong câu truy vấn.

Nói ra thì dài dòng nên ta sẽ bắt đầu tìm hiểu nó ngay nhé.

Mục lục

  • 1. Mysql Stored Procedure là gì?
  • 2. Ưu điểm của Stored Proccedure trong Mysql
  • 3. Nhược điểm của Stored Procedure trong Mysql
  • Lời kết:

1. Mysql Stored Procedure là gì?

Chắc hẳn bạn đã biết được khái niệm về Hàm trong PHP rồi nhỉ? Thì trong Mysql Procedure cũng có ý nghĩa tương tự như vậy, nghĩa là chúng ta sẽ tạo những hàm (Procedure) để thực hiện những dòng lệnh liên quan trong đó, ví dụ như thao tác Update hay Insert.

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

Thông thường một hàm có thể gọi lại chính nó và ta gọi là đệ quy (tham khảo đệ quy trong php). Nhưng trong MYSQL thì bạn hãy kiểm tra Version của bạn có hỗ trợ không nhé. Nếu có thì mình cũng nghĩ là không nên sử dụng bởi vì bản chất MYSQL không sử dụng để tính toán nhiều.

Với MYSQL thì khái niệm Stored Procedure chỉ được thêm vào kể từ Version 5 với mục đích là giúp việc xử lý dữ liệu linh hoạt và mạnh mẽ hơn.

2. Ưu điểm của Stored Proccedure trong Mysql

Thông thường chúng ta sử dụng Procedure để tăng hiệu xuất xử lý của ứng dụng, sau khi được tạo ra thì tất cả các thủ tục được lưu trong hệ quản trị cơ sở dữ liệu. Tuy nhiên trong MYSQL việc lưu trữ các hàm này lại hơi khác nhau, khi được tạo ra thì thủ tục này sẽ được lưu trữ trong một bộ nhớ đệm (cache). Nếu trong một ứng dụng sử dụng gọi tới một Procedure nhiều lần trong một chuỗi kết nối thì lúc này sẽ coi nó như một chương trình cần biên dịch, nếu không thì sẽ coi như như là một câu truy vấn bình thường.

Stored Procedure giúp giảm thời gian giao tiếp giữa các ứng dụng với hệ quản trị MYSQL, bởi vì thay vì gửi nhiều câu lệnh dài thì ta chỉ cần gọi tới một thủ tục và trong thủ tục này sẽ thực hiện nhiều câu lệnh SQL.

Stored Procudure sẽ giúp các ứng dụng nhìn minh bạch hơn, nghĩa là khi ta định nghĩa các thao tác xử lý vào một Stored thì công việc của các ngôn ngữ lập trình khác chỉ quan tâm đến tên thủ tục, các tham số truyenf vào chứ không cần biết nó thực hiện như thế nào. Điều này giúp các team làm việc tốt hơn, ta sẽ phân ra bộ phận Coder riêng và bộ phận viết thủ tục riêng.

Mỗi thủ tục sẽ có các mức độ truy cập, nghĩa là ta có thể cấp quyền sử dụng cho một Uesr nào đó trong hệ quản trị (Lưu ý là user trong hệ quản trị chứ không phải là admin của ứng dụng website).

Bên cạnh những ưu điểm như trên thì Procedure cũng có một số nhược điểm như phần dưới đây.

3. Nhược điểm của Stored Procedure trong Mysql

Nếu bạn tạo ra quá nhiều Procedure thì hệ quản trị sẽ sử dụng bộ nhớ để lưu trữ các thủ tục này khá nhiều. Ngoài ra nếu bạn thực hiện quá nhiều xử lý trong mỗi thủ tục thì đồng nghĩa với việc CPU sẽ làm việc nặng hơn, điều này không tốt chút nào.

Nếu sử dụng thủ tục thì sẽ rất khó phát triển trong ứng dụng, gây khó khăn ở mức logic business.

Một số hệ quản trị CSDL có những tool hỗ trợ Debug Store nhưng MYSQL thì không có.

Để phát triển ứng dụng thì bạn phải đòi hỏi có một kỹ năng thật siêu đăng mà không phải nhà thiết kế cơ sở dữ liệu nào cũng có. Điều này dễ bị phá cho vấn đề bảo trì và nâng cấp

Lời kết:

Qua bài này hy vọng bạn hiểu Stored Procedure trong MYSQL là gì và ưu nhược điểm của nó. Chính vì những nhược điểm đó mà Procedure rất ít khi sử dụng trong các ứng dụng Website. Giả sử bạn thuê một nhà phát triển ứng dụng họ viết theo kiểu sử dụng Procedure, sau đó bạn thuê tiếp một nhà phát triển khác thì đảm bảo họ chạy dài ngay vì khó có thể biêt được ý tưởng của nhà thiết kế cũ. Chính vì vậy khi phát triển ứng dụng thì bạn nên xem xét kỹ trước khi sử dụng nó nhé. Trong các bài tiếp theo chúng ta sẽ tìm hiểu làm thế nào để tận dụng tối đa Procedure trong MYSQL khi xây dựng website.

=============================
* 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

=============================
Giới thiệu Mysql Stored Procedure 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