DBAtlas · Атлас эксплуатации баз данных

3024: Query execution was interrupted, maximum statement execution time exceeded

MySQL

Что это значит?

Запрос SELECT прерван MySQL, так как превысил заданное для него максимальное время выполнения (max_execution_time / подсказка MAX_EXECUTION_TIME). Это защитный тайм-аут, не позволяющий долгим запросам занимать ресурсы.

Почему возникает?

Запрос выполнялся дольше значения max_execution_time сеанса/глобального или подсказки оптимизатора MAX_EXECUTION_TIME(N) в SELECT. Обычно вызвано неэффективным планом, отсутствующим индексом, большим сканированием или замедлением при высокой параллельной нагрузке. (Применяется только к SELECT только для чтения.)

Как исправить

Проанализируйте запрос с помощью EXPLAIN и оптимизируйте его (подходящие индексы, более селективные предикаты, меньше полных сканирований таблиц). Если запросу обоснованно нужно выполняться долго, увеличьте подсказку MAX_EXECUTION_TIME для этого SELECT или max_execution_time сеанса. Выполняйте тяжёлые аналитические запросы в offline/на реплике.

Открыть в DBAtlas →

Ещё по этой СУБД