Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Các nhà phát triển PHP có nên sử dụng các thủ tục được lưu trữ của MySQL không?

Việc sử dụng Thủ tục được lưu trữ hay không chỉ là một cuộc thảo luận tôn giáo hoặc chính trị tại một quán bar hơn là không.
Điều cần làm là xác định rõ các lớp ứng dụng của bạn và không vượt qua các ranh giới đó. Các thủ tục được lưu trữ có một số ưu điểm và nhược điểm so với việc thực hiện các truy vấn bên ngoài cơ sở dữ liệu.

Ưu điểm 1:Các thủ tục được lưu trữ là mô-đun. Đây là một điều tốt từ quan điểm bảo trì. Khi sự cố truy vấn phát sinh trong ứng dụng của bạn, bạn có thể sẽ đồng ý rằng việc khắc phục sự cố một thủ tục được lưu trữ dễ dàng hơn nhiều so với một truy vấn nhúng được chôn trong nhiều dòng mã GUI.

Ưu điểm 2:Các thủ tục được lưu trữ có thể điều chỉnh được. Bằng cách có các thủ tục xử lý cơ sở dữ liệu hoạt động cho giao diện của bạn, bạn loại bỏ nhu cầu sửa đổi mã nguồn GUI để cải thiện hiệu suất của truy vấn. Các thay đổi có thể được thực hiện đối với các thủ tục được lưu trữ - về phương pháp nối, các bảng khác nhau, v.v. - minh bạch với giao diện front-end.

Ưu điểm 3:Các thủ tục được lưu trữ trừu tượng hoặc tách các chức năng phía máy chủ khỏi phía máy khách. Việc viết mã một ứng dụng GUI để gọi một thủ tục dễ dàng hơn nhiều so với việc tạo một truy vấn thông qua mã GUI.

Ưu điểm 4:Các thủ tục được lưu trữ thường được viết bởi các nhà phát triển / quản trị cơ sở dữ liệu. Những người nắm giữ các vai trò này thường có kinh nghiệm hơn trong việc viết các truy vấn và câu lệnh SQL hiệu quả. Điều này giải phóng các nhà phát triển ứng dụng GUI sử dụng các kỹ năng của họ trên các phần trình bày chức năng và đồ họa của ứng dụng. Nếu bạn có người của mình thực hiện các nhiệm vụ mà họ phù hợp nhất, thì cuối cùng bạn sẽ tạo ra một ứng dụng tổng thể tốt hơn.

Với tất cả những điều đó, có một số nhược điểm.

Nhược điểm 1:Các ứng dụng liên quan đến logic nghiệp vụ và xử lý rộng rãi có thể đặt quá tải lên máy chủ nếu logic được thực hiện hoàn toàn trong các thủ tục được lưu trữ. Ví dụ về kiểu xử lý này bao gồm truyền dữ liệu, truyền dữ liệu, biến đổi dữ liệu và các hoạt động tính toán chuyên sâu. Bạn nên chuyển loại xử lý này sang quy trình nghiệp vụ hoặc các thành phần logic truy cập dữ liệu, là tài nguyên có khả năng mở rộng hơn máy chủ cơ sở dữ liệu của bạn.

Nhược điểm 2:Không đưa tất cả logic kinh doanh của bạn vào các thủ tục được lưu trữ. Việc bảo trì và tính linh hoạt của ứng dụng của bạn trở thành một vấn đề khi bạn phải sửa đổi logic nghiệp vụ trong ngôn ngữ Sp. Ví dụ:các ứng dụng ISV hỗ trợ nhiều RDBMS sẽ không cần phải duy trì các thủ tục được lưu trữ riêng biệt cho từng hệ thống.

Nhược điểm 3:Viết và duy trì các thủ tục được lưu trữ thường là một bộ kỹ năng chuyên biệt mà không phải lập trình viên nào cũng có. Tình huống này có thể gây ra những tắc nghẽn trong tiến độ phát triển dự án.

Tôi có thể đã bỏ qua một số ưu điểm và nhược điểm, vui lòng bình luận.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bạn sẽ lưu trữ giờ của một doanh nghiệp như thế nào trong db / model của ứng dụng Rails?

  2. Tối ưu hóa truy vấn MySQL để tránh Sử dụng ở đâu; Sử dụng tạm thời; Sử dụng filesort

  3. Trình điều khiển MySQL cho Rails trong Windows 7 x64

  4. chuyển đổi múi giờ sang múi giờ khác

  5. MySQL DATEDIFF () so với TIMEDIFF ():Sự khác biệt là gì?