mysql Error1615:Prepared statement needs to be re-prepared解决办法

3,000 阅读1分钟

MYSQL实践心得:table_open_cache的设置

最近的项目中由于使用了视图表,查询频率比较高,发生了mysqlError1615报错,通过实践设置mysql相关参数发现可以解决此报错

mysql> show global status like 'open%tables%';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Open_tables | 37426 |
| Opened_tables | 420397 |
+---------------+---------+

Opened_tables数值非常大,说明cache太小,导致要频繁地open table,可以查看下当前的table_open_cache设置: Opened_tables数值非常大,说明cache太小,导致要频繁地open table,可以查看下当前的table_open_cache设置:

mysql> show variables like '%table_open_cache%';

+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| table_open_cache | 2000|
+------------------+-------+

详情见官方文档

mysql> set global table_open_cache=524288;
mysql> set global table_definition_cache=524288;
Query OK, 0 rows affected (0.00 sec)

设置生效之后,重新查询数据库未发生Error 1615的报错,此方法可供参考。