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/на реплике.
Ещё по этой СУБД
- 1030Got error N from storage engine
- 1197Multi-statement transaction required more than 'max_binlog_cache_size'
- 1785Statement violates GTID consistency
- 1298Unknown or incorrect time zone
- 1418Function has none of DETERMINISTIC, NO SQL, or READS SQL DATA (binary logging enabled)
- 1231Variable can't be set to the value of ...