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 中打开 →

同一数据库的其他条目