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

1615: Prepared statement needs to be re-prepared

MySQL

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

Выполнение подготовленного на сервере оператора отклонено, так как он стал недействительным после изменения метаданных, от которых он зависит (определения таблицы/представления). Оператор необходимо подготовить заново.

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

DDL (ALTER TABLE) над базовой таблицей после подготовки оператора, пересоздание таблицы, переполнение кеша метаданных с вытеснением записи или слишком малые лимиты table_definition_cache/table_open_cache. Часто встречается в системах с интенсивным DDL и в некоторых сценариях ORM/пулов.

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

Большинство клиентских библиотек перехватывают эту ошибку и автоматически заново подготавливают оператор; в приложении перехватывайте эту ошибку и повторяйте prepare + execute. Если ошибка повторяется часто, увеличьте table_definition_cache и table_open_cache. Избегайте ненужного DDL во время трафика приложения.

Открыть в DBAtlas →

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