3024: Query execution was interrupted, maximum statement execution time exceeded(最大文実行時間を超えたためクエリの実行が中断された)
MySQL意味
SELECT クエリが、定義された最大実行時間 (max_execution_time / MAX_EXECUTION_TIME ヒント) を超えたため MySQL によって中断された。長時間実行のクエリがリソースを占有するのを防ぐタイムアウトの安全装置である。
原因
クエリがセッション/グローバルの max_execution_time の値、または SELECT の MAX_EXECUTION_TIME(N) オプティマイザヒントより長く実行された。通常、非効率な実行計画、インデックスの欠如、大規模な走査、または高い同時実行時の速度低下が原因。(読み取り専用の SELECT にのみ適用される。)
対処方法
EXPLAIN でクエリを分析して最適化する (適切なインデックス、より選択性の高い条件、全表走査の削減)。クエリが正当に長時間の実行を必要とする場合は、その SELECT の MAX_EXECUTION_TIME ヒントまたはセッションの max_execution_time を増やす。重い分析クエリはオフライン/レプリカで実行する。
同じデータベースの他の項目
- 1030Got error N from storage engine(ストレージエンジンからエラー N を受け取った)
- 1197Multi-statement transaction required more than 'max_binlog_cache_size'(複数文トランザクションが 'max_binlog_cache_size' を超える領域を必要とした)
- 1785Statement violates GTID consistency(文が GTID 整合性に違反)
- 1298Unknown or incorrect time zone(不明または誤ったタイムゾーン)
- 1418Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled)(関数に DETERMINISTIC、NO SQL、READS SQL DATA のいずれもない (バイナリログ有効))
- 1231Variable can't be set to the value of ...(変数を ... の値に設定できない)