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.