在 MySQL 中強制執行查詢執行時間限制
問題:我可以設定 MySQL來限制查詢的執行時間?
答案:從歷史上看,MySQL 缺乏限制查詢執行時間的內建機制。但是,最近對 MySQL 5.7 的更新引入了 MAX_EXECUTION_TIME 優化器提示。
MAX_EXECUTION_TIME 最佳化器提示:
從 MySQL 5.7 開始,您可以在 SELECT 查詢中包含 MAX_EXECUTION_TIME 最佳化器提示。此提示指示伺服器在超過指定時間限制時終止查詢。
SELECT * FROM table_name WHERE condition LIMIT 1 MAX_EXECUTION_TIME=10;
伺服器範圍逾時:
如果您需要伺服器範圍逾時或需要限制SELECT 以外的查詢,提供的原始答案仍然是您的最佳選擇。
Cron作業方法:
原始答案建議設定一個 cron 作業,定期檢查並終止任何超過預定義時間限制的查詢。此方法涉及執行以下步驟:
其他注意事項:
雖然MAX_EXECUTION_TIME 提示很方便,但它僅適用於SELECT 查詢,不能在伺服器層級強制執行。 cron 作業方法提供了一個更強大的解決方案,用於對所有查詢類型實施時間限制。
以上是如何限制 MySQL 中的查詢執行時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!