table_open_cache参数合理配置详解
具体看到这篇文章 MySQL 5.6下table_open_cache参数合理配置详解
谈到:
***table_open_cache指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。
通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_open_cache的值。
如果你发现open_tables等于table_open_cache,并且opened_tables在不断增长,那么你就需要增加table_open_cache的值了(上述状态值可通过SHOW GLOBAL STATUS LIKE 'Open%tables';获得)。
注意,不能盲目地把table_open_cache设置成很大的值,设置太大超过了shell的文件描述符(通过ulimit -n查看),造成文件描述符不足,从而造成性能不稳定或者连接失败。
比较适合的值:
Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95
另一篇文章也提到使用
SHOW VARIABLES LIKE '%table_open_cache%';
查看当前的table_open_cache设置大小
适当缩小此参数可以减轻内存占用
配置文件设置
[mysqld] 字段末尾添加一句:
performance_schema = off