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 ヒント)。大きな操作は分割する。
同じデータベースの他の項目
- 3730Cannot drop table referenced by a foreign key constraint(外部キー制約で参照されているテーブルは削除できない)
- 2013Lost connection to MySQL server during query(クエリ中に MySQL サーバーとの接続が失われた)
- 1153Got a packet bigger than 'max_allowed_packet' bytes(max_allowed_packet より大きいパケットを受信)
- 1927MariaDB: ER_CONNECTION_KILLED: Connection was killed(接続が強制終了された)
- 1290ER_OPTION_PREVENTS_STATEMENT: running with the --read-only option(--read-only オプションで稼働中)
- 1836ER_READ_ONLY_MODE: Running in read-only mode(読み取り専用モードで稼働中)
- 3819ER_CHECK_CONSTRAINT_VIOLATED: Check constraint is violated(CHECK 制約違反)