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

MySql SP lồng nhau có thể là một nút cổ chai không?

Vâng nó có thể. Chúng tôi không có các phép đo về việc này mất bao lâu, nhưng người ta có thể mong đợi một bảng tạm thời gây ra một số chi phí khi bạn tạo nó, ghi dữ liệu vào nó, truy vấn nó, sau đó thả nó xuống. Điều này được gọi bao lâu một lần?

Ngoài ra, các thủ tục được lưu trữ của MySQL thường được biết là khá kém hiệu quả. Họ không giữ lại biểu mẫu đã biên dịch của thủ tục, giống như trong Oracle và các thương hiệu RDBMS khác. Nói cách khác, mỗi phiên biên dịch lại từng thủ tục mà nó sử dụng lần đầu tiên nó được gọi.

Đầu tiên, tôi đề nghị loại bỏ bảng tạm thời. Chỉ cần thiết kế thủ tục lồng nhau để tạo truy vấn SQL phù hợp dưới dạng một chuỗi và trả về chuỗi đó. Sau đó, thủ tục bên ngoài thực hiện truy vấn là kết quả của nó. Bạn sẽ có thể bỏ qua việc tạo / thả bảng tạm thời và chèn vào bảng tạm.

Thứ hai, nếu tôi đang thiết kế ứng dụng này, tôi không thấy cần bất kỳ thủ tục nào được lưu trữ. Tôi khuyên bạn nên viết mã để tạo truy vấn SQL phù hợp trong ứng dụng của bạn và sau đó chỉ cần thực thi truy vấn đó từ ứng dụng.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để chọn một số trường nhất định trong Laravel Eloquent?

  2. Làm cách nào để đặt mật khẩu của mysql trong tình huống mysqld_safe đang chạy?

  3. Sự cố MySQL Innodb

  4. mysql_fetch_assoc ():đối số được cung cấp không phải là tài nguyên kết quả MySQL hợp lệ trong php

  5. MySQL:Không thể tạo / ghi vào tệp '/tmp/#sql_3c6_0.MYI' (Mã lỗi:2) - Nó thậm chí có nghĩa là gì?