DBAtlas · データベース運用アトラス

1969: MariaDB: Query execution was interrupted (max_statement_time exceeded)(クエリの実行が中断された)

MySQL

意味

MariaDB 固有 (ER_STATEMENT_TIMEOUT): クエリが max_statement_time で定義された最大実行時間を超えたため中断された。MySQL にはこのコードはなく、MySQL での相当はエラー 3024 (ER_QUERY_TIMEOUT、max_execution_time)。

原因

MariaDB で、セッション/グローバルの max_statement_time の上限、または SET STATEMENT max_statement_time=N FOR ... で設定した上限の超過。非効率な実行計画、インデックスの欠如、大量データのスキャン、またはロック待機。

対処方法

EXPLAIN でクエリを分析し、インデックスの追加と実行計画の改善で高速化する。クエリが本当に長時間実行される必要があるなら、MariaDB で上限を引き上げる: SET SESSION max_statement_time = 60; (秒) または SET STATEMENT max_statement_time = 60 FOR SELECT ...; MySQL を使う場合は 3024 の項目を参照する (max_execution_time、ミリ秒。MAX_EXECUTION_TIME ヒント)。大きな操作は分割する。

DBAtlas で開く →

同じデータベースの他の項目