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 で開く →

同じデータベースの他の項目