3024: Query execution was interrupted, maximum statement execution time exceeded
MySQLNe demek?
Bir SELECT sorgusu, kendisi için tanımlanan azami çalışma süresini (max_execution_time / MAX_EXECUTION_TIME hint) aştığı için MySQL tarafından kesildi. Bu, uzun süren sorguların kaynakları tıkamasını önleyen bir zaman aşımı korumasıdır.
Neden olur?
Sorgu, oturum/genel max_execution_time değerinden ya da SELECT üzerindeki MAX_EXECUTION_TIME(N) optimizer hint'inden daha uzun sürdü. Genellikle verimsiz plan, eksik index, büyük tarama ya da yoğun eşzamanlılık altında yavaşlama nedeniyle olur. (Yalnızca salt-okunur SELECT'lere uygulanır.)
Nasıl çözülür?
Sorguyu EXPLAIN ile inceleyip optimize edin (uygun index'ler, daha seçici koşullar, tam tablo taramalarını azaltma). Sorgunun meşru olarak uzun sürmesi gerekiyorsa ilgili SELECT için MAX_EXECUTION_TIME hint değerini ya da oturum max_execution_time değerini artırın. Ağır analitik sorguları offline bir ortamda/replika üzerinde çalıştırın.
Aynı motorda diğer kayıtlar
- 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 ...