Introduction to MySQL Stored Procedures
http://www.mysqltutorial.org/introduction-to-sql-stored-procedures.aspx
Last updated
http://www.mysqltutorial.org/introduction-to-sql-stored-procedures.aspx
Last updated
Tóm tắt: trong hướng dẫn này, bạn sẽ tìm hiểu về các thủ tục lưu trữ MySQL, ưu điểm và nhược điểm của chúng.
Một thủ tục được lưu trữ là một phân đoạn các câu lệnh SQL khai báo được lưu trữ bên trong danh mục cơ sở dữ liệu. Một thủ tục được lưu trữ có thể được gọi bởi các trình kích hoạt, các thủ tục được lưu trữ khác và các ứng dụng như Java, Python, PHP.
Một thủ tục được lưu trữ mà gọi chính nó được gọi là một thủ tục lưu trữ đệ quy. Hầu hết các hệ thống quản lý cơ sở dữ liệu hỗ trợ các thủ tục lưu trữ đệ quy. Tuy nhiên, MySQL không hỗ trợ nó rất tốt. Bạn nên kiểm tra phiên bản cơ sở dữ liệu MySQL của mình trước khi thực hiện các thủ tục lưu trữ đệ quy trong MySQL.
MySQL được biết đến như là RDBMS mã nguồn mở phổ biến nhất được sử dụng rộng rãi bởi cả cộng đồng và doanh nghiệp. Tuy nhiên, trong thập kỷ đầu tiên tồn tại, nó không hỗ trợ các thủ tục được lưu trữ, các chức năng được lưu trữ, các trình kích hoạt và các sự kiện. Kể từ phiên bản MySQL 5.0, các tính năng này đã được thêm vào công cụ cơ sở dữ liệu MySQL để làm cho nó linh hoạt và mạnh mẽ hơn.
Thông thường, các thủ tục được lưu trữ giúp tăng hiệu suất của các ứng dụng. Sau khi tạo, các thủ tục lưu trữ được biên dịch và lưu trữ trong cơ sở dữ liệu. Tuy nhiên, MySQL thực hiện các thủ tục được lưu trữ hơi khác nhau. Thủ tục lưu trữ MySQL được biên dịch theo yêu cầu. Sau khi biên dịch một thủ tục được lưu trữ, MySQL đặt nó vào một bộ đệm và duy trì bộ đệm thủ tục được lưu trữ của riêng nó cho mỗi kết nối. Nếu một ứng dụng sử dụng một thủ tục được lưu trữ nhiều lần trong một kết nối, thì phiên bản đã biên dịch sẽ được sử dụng, nếu không, thủ tục được lưu trữ sẽ hoạt động giống như một truy vấn. Các thủ tục được lưu trữ giúp giảm lưu lượng giữa ứng dụng và máy chủ cơ sở dữ liệu vì thay vì gửi nhiều câu lệnh SQL dài, ứng dụng chỉ phải gửi tên và tham số của thủ tục được lưu trữ. Thủ tục lưu trữ có thể tái sử dụng và minh bạch cho bất kỳ ứng dụng. Các thủ tục được lưu trữ hiển thị giao diện cơ sở dữ liệu cho tất cả các ứng dụng để các nhà phát triển không phải phát triển các chức năng đã được hỗ trợ trong các thủ tục được lưu trữ. Thủ tục lưu trữ được an toàn. Quản trị viên cơ sở dữ liệu có thể cấp quyền thích hợp cho các ứng dụng truy cập các thủ tục được lưu trữ trong cơ sở dữ liệu mà không cung cấp bất kỳ quyền nào trên các bảng cơ sở dữ liệu cơ bản.
Bên cạnh những ưu điểm đó, các thủ tục được lưu trữ có những nhược điểm riêng, bạn cần lưu ý trước khi sử dụng chúng trong cơ sở dữ liệu của mình.
Nếu bạn sử dụng nhiều thủ tục được lưu trữ, việc sử dụng bộ nhớ của mọi kết nối đang sử dụng các thủ tục được lưu trữ đó sẽ tăng đáng kể. Ngoài ra, nếu bạn lạm dụng một số lượng lớn các hoạt động logic bên trong các thủ tục được lưu trữ, việc sử dụng CPU sẽ tăng lên vì máy chủ cơ sở dữ liệu không được thiết kế tốt cho các hoạt động logic. Các thủ tục được lưu trữ Các cấu trúc của bản đồ không được thiết kế để phát triển logic kinh doanh phức tạp và linh hoạt. Rất khó để gỡ lỗi các thủ tục lưu trữ. Chỉ có một vài hệ thống quản lý cơ sở dữ liệu cho phép bạn gỡ lỗi các thủ tục được lưu trữ. Thật không may, MySQL không cung cấp phương tiện để gỡ lỗi các thủ tục được lưu trữ. Không dễ để phát triển và duy trì các thủ tục lưu trữ. Phát triển và duy trì các thủ tục được lưu trữ thường được yêu cầu một bộ kỹ năng chuyên biệt mà không phải tất cả các nhà phát triển ứng dụng đều sở hữu. Điều này có thể dẫn đến các vấn đề trong cả hai giai đoạn phát triển ứng dụng và bảo trì.
Các thủ tục lưu trữ MySQL có ưu điểm và nhược điểm riêng. Khi bạn phát triển các ứng dụng, bạn nên quyết định có sử dụng các thủ tục được lưu trữ hay không dựa trên kiến trúc ứng dụng của bạn.
Trong các hướng dẫn sau, chúng tôi sẽ chỉ cho bạn cách tận dụng các thủ tục được lưu trữ của MySQL trong các tác vụ lập trình cơ sở dữ liệu của bạn với nhiều ví dụ thực tế.