Cập nhật
Kể từ MySQL 5.7, bạn có thể bao gồm MAX_EXECUTION_TIME
gợi ý về trình tối ưu hóa trong SELECT
của bạn truy vấn để hướng dẫn máy chủ kết thúc nó sau thời gian được chỉ định.
Theo như tôi biết, nếu bạn muốn thực thi thời gian chờ trên toàn máy chủ hoặc nếu bạn quan tâm đến các truy vấn ngoài SELECT
s, câu trả lời ban đầu vẫn là lựa chọn duy nhất của bạn.
Câu trả lời ban đầu
Không có cách nào để chỉ định thời gian chạy tối đa khi gửi truy vấn đến máy chủ để chạy.
Tuy nhiên, không có gì lạ khi có một công việc cron chạy mỗi giây trên máy chủ cơ sở dữ liệu của bạn, kết nối và thực hiện điều gì đó như sau:
- HIỂN THỊ DANH SÁCH XỬ LÝ
- Tìm tất cả các kết nối có thời gian truy vấn lớn hơn thời gian mong muốn tối đa của bạn
- Chạy KILL [id quy trình] cho từng quy trình đó