Thủ tục được lưu trữ trong MySQL với ví dụ là gì?

Tóm lược. trong hướng dẫn này, bạn sẽ tìm hiểu về các thủ tục được lưu trữ trong MySQL, ưu điểm và nhược điểm của chúng

Bắt đầu với các thủ tục được lưu trữ

Câu lệnh SELECT sau đây trả về tất cả các hàng trong bảng customers từ cơ sở dữ liệu mẫu

SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName;

Code language: SQL [Structured Query Language] [sql]

Ảnh này hiển thị một phần đầu ra của truy vấn

CREATE PROCEDURE sau đây tạo một thủ tục được lưu trữ mới kết thúc truy vấn ở trên

DELIMITER $$ CREATE PROCEDURE GetCustomers[] BEGIN SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]

Theo định nghĩa, thủ tục lưu sẵn là một đoạn câu lệnh SQL khai báo được lưu trữ bên trong Máy chủ MySQL. Trong ví dụ này, chúng ta vừa tạo một thủ tục lưu trữ có tên GetCustomers[]

Khi bạn lưu thủ tục đã lưu trữ, bạn có thể gọi nó bằng cách sử dụng câu lệnh CALL

CALL GetCustomers[];

Code language: SQL [Structured Query Language] [sql]

Và câu lệnh trả về kết quả tương tự như truy vấn

Lần đầu tiên bạn gọi một thủ tục được lưu trữ, MySQL sẽ tìm kiếm tên trong danh mục cơ sở dữ liệu, biên dịch mã của thủ tục được lưu trữ, đặt nó vào vùng bộ nhớ được gọi là bộ đệm và thực thi thủ tục được lưu trữ

Nếu bạn gọi lại cùng một thủ tục được lưu trữ trong cùng một phiên, MySQL chỉ thực thi thủ tục được lưu trữ từ bộ đệm mà không phải biên dịch lại nó

Một thủ tục được lưu trữ có thể có các tham số để bạn có thể chuyển các giá trị cho nó và nhận lại kết quả. Ví dụ: bạn có thể có một thủ tục được lưu trữ trả về khách hàng theo quốc gia và thành phố. Trong trường hợp này, quốc gia và thành phố là các tham số của thủ tục được lưu trữ

Một thủ tục được lưu trữ có thể chứa các câu lệnh luồng điều khiển như IF,

DELIMITER $$ CREATE PROCEDURE GetCustomers[] BEGIN SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
0 và

DELIMITER $$ CREATE PROCEDURE GetCustomers[] BEGIN SELECT customerName, city, state, postalCode, country FROM customers ORDER BY customerName; END$$ DELIMITER ;

Code language: SQL [Structured Query Language] [sql]
0 cho phép bạn triển khai mã theo cách thủ tục

Một thủ tục được lưu trữ có thể gọi các thủ tục được lưu trữ khác hoặc các hàm được lưu trữ, cho phép bạn điều chỉnh mã của mình

Lưu ý rằng bạn sẽ học từng bước cách tạo thủ tục lưu sẵn mới trong hướng dẫn tiếp theo

Ưu điểm của thủ tục lưu trữ MySQL

Sau đây là những ưu điểm của thủ tục lưu trữ

Giảm lưu lượng mạng

Các thủ tục được lưu trữ giúp giảm lưu lượng mạng giữa các ứng dụng và Máy chủ MySQL. Bởi vì thay vì gửi nhiều câu lệnh SQL dài, các ứng dụng chỉ phải gửi tên và tham số của các thủ tục được lưu trữ

Tập trung logic kinh doanh trong cơ sở dữ liệu

Bạn có thể sử dụng các thủ tục được lưu trữ để triển khai logic nghiệp vụ mà nhiều ứng dụng có thể sử dụng lại. Các thủ tục được lưu trữ giúp giảm nỗ lực sao chép cùng một logic trong nhiều ứng dụng và làm cho cơ sở dữ liệu của bạn nhất quán hơn

Làm cho cơ sở dữ liệu an toàn hơn

Quản trị viên cơ sở dữ liệu có thể cấp các đặc quyền phù hợp cho các ứng dụng chỉ truy cập các thủ tục được lưu trữ cụ thể mà không cấp bất kỳ đặc quyền nào trên các bảng bên dưới

Nhược điểm của thủ tục lưu trữ MySQL

Bên cạnh những ưu điểm đó, thủ tục lưu sẵn cũng có những nhược điểm

Sử dụng tài nguyên

Nếu bạn sử dụng nhiều thủ tục được lưu trữ, mức sử dụng bộ nhớ của mọi kết nối sẽ tăng lên đáng kể

Bên cạnh đó, việc lạm dụng một số lượng lớn các thao tác logic trong các thủ tục được lưu trữ sẽ làm tăng mức sử dụng CPU vì MySQL không được thiết kế tốt cho các thao tác logic

Xử lý sự cố

Thật khó để gỡ lỗi các thủ tục được lưu trữ. Thật không may, MySQL không cung cấp bất kỳ phương tiện nào để gỡ lỗi các thủ tục được lưu trữ giống như các sản phẩm cơ sở dữ liệu doanh nghiệp khác như Oracle và SQL Server

bảo trì

Việc phát triển và duy trì các thủ tục được lưu trữ thường yêu cầu một bộ kỹ năng chuyên biệt mà không phải nhà phát triển ứng dụng nào cũng sở hữu. Điều này có thể dẫn đến các vấn đề trong cả phát triển và bảo trì ứng dụng

Trong hướng dẫn này, bạn đã tìm hiểu về các thủ tục được lưu trữ trong MySQL, ưu điểm và nhược điểm của chúng. Hãy tiếp tục tìm hiểu cách tạo thủ tục lưu trữ mới trong MySQL

thủ tục được lưu trữ giải thích với ví dụ là gì?

Một thủ tục được lưu trữ là một mã SQL đã chuẩn bị sẵn mà bạn có thể lưu, vì vậy mã này có thể được sử dụng lại nhiều lần. Vì vậy, nếu bạn có một truy vấn SQL mà bạn viết đi viết lại nhiều lần, hãy lưu nó dưới dạng một thủ tục được lưu trữ và sau đó chỉ cần gọi nó để thực thi nó

Thủ tục trong MySQL với ví dụ là gì?

Một thủ tục [thường được gọi là thủ tục lưu trữ] là tập hợp các câu lệnh SQL được biên dịch trước được lưu trữ bên trong cơ sở dữ liệu . Nó là chương trình con hoặc chương trình con trong ngôn ngữ điện toán thông thường. Một thủ tục luôn chứa tên, danh sách tham số và câu lệnh SQL.

Làm cách nào để viết thủ tục lưu sẵn trong MySQL?

Tạo thủ tục lưu sẵn đơn giản. PHÂN BIỆT ; . Bạn có thể xem thủ tục dưới thủ tục lưu sẵn. open the MySQL workbench Connect to the MySQL Database copy-paste the code in the query editor window click on Execute. You can view the procedure under stored procedures.

Mục đích chính của thủ tục lưu trữ là gì?

Một thủ tục được lưu trữ cung cấp một lớp bảo mật quan trọng giữa giao diện người dùng và cơ sở dữ liệu . Nó hỗ trợ bảo mật thông qua kiểm soát truy cập dữ liệu vì người dùng cuối có thể nhập hoặc thay đổi dữ liệu, nhưng không viết thủ tục.

Chủ Đề