VIEW
STORED PROCEDURE
INDEX
FULL TEXT SEARCH
TRIGGER
TIPS
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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é.

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 [free tuts .net]

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.

Cùng chuyên mục:

Hàm ENCRYPT trong MySQL

Hàm ENCRYPT trong MySQL

Cách sử dụng ENCRYPT trong MySQL

Hàm MD5 trong MySQL

Hàm MD5 trong MySQL

Cách sử dụng MD5 trong MySQL

Hàm OLD_PASSWORD trong MySQL

Hàm OLD_PASSWORD trong MySQL

Cách sử dụng OLD_PASSWORD trong MySQL

Hàm PASSWORD trong MySQL

Hàm PASSWORD trong MySQL

Cách sử dụng PASSWORD trong MySQL

Hàm ASCII trong MySQL

Hàm ASCII trong MySQL

Cách sử dụng ASCII trong MySQL

Hàm CHAR_LENGTH trong MySQL

Hàm CHAR_LENGTH trong MySQL

Cách sử dụng CHAR_LENGTH trong MySQL

Hàm CHARACTER_LENGTH trong MySQL

Hàm CHARACTER_LENGTH trong MySQL

Cách sử dụng CHARACTER_LENGTH trong MySQL

Hàm CONCAT trong MySQL

Hàm CONCAT trong MySQL

Cách sử dụng CONCAT trong MySQL

Hàm CONCAT_WS trong MySQL

Hàm CONCAT_WS trong MySQL

Cách sử dụng CONCAT_WS trong MySQL

Hàm FIELD trong MySQL

Hàm FIELD trong MySQL

Cách sử dụng FIELD trong MySQL

Hàm FIND_IN_SET trong MySQL

Hàm FIND_IN_SET trong MySQL

Cách sử dụng FIND_IN_SET trong MySQL

Hàm FORMAT trong MySQL

Hàm FORMAT trong MySQL

Cách sử dụng FORMAT trong MySQL

Hàm INSERT trong MySQL

Hàm INSERT trong MySQL

Cách sử dụng INSERT trong MySQL

Hàm INSTR trong MySQL

Hàm INSTR trong MySQL

Cách sử dụng INSTR trong MySQL

Hàm LCASE trong MySQL

Hàm LCASE trong MySQL

Cách sử dụng LCASE trong MySQL

Hàm LEFT trong MySQL

Hàm LEFT trong MySQL

Cách sử dụng LEFT trong MySQL

Hàm LENGTH trong MySQL

Hàm LENGTH trong MySQL

Cách sử dụng LENGTH trong MySQL

Hàm LOCATE trong MySQL

Hàm LOCATE trong MySQL

Cách sử dụng LOCATE trong MySQL

Hàm LOWER trong MySQL

Hàm LOWER trong MySQL

Cách sử dụng LOWER trong MySQL

Hàm LPAD trong MySQL

Hàm LPAD trong MySQL

Cách sử dụng LPAD trong MySQL

Top