MYSQL实践心得:table_open_cache的设置
最近的项目中由于使用了视图表,查询频率比较高,发生了mysql
的Error1615
报错,通过实践设置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
的报错,此方法可供参考。