table_cache
指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。通过检查峰值时间的
状态值Open_tables和Opened_tables,可以决定是否需要增加table_cache的值。如果你发现open_tables等于
table_cache,并且opened_tables在不断增长,那么你就需要增加table_cache的值了(上述状态值可以使用SHOW
STATUS LIKE
‘Open%tables’获得)。注意,不能盲目地把table_cache设置成很大的值。如果设置得太高,可能会造成文件描述符不足,从而造成性能
不稳定或者连接失败。
对于有1G内存的机器,推荐值是128-256。
笔者设置 table_cache
= 256
得到以下状态: Open tables 256 Opened
tables 9046 虽然open_tables已经等于table_cache,但是相对于服务器运行时间来说,已经运行了20
天,opened_tables的值也非常低。因此,增加table_cache的值应该用处不大。如果运行了6个小时就出现上述值
那就要考虑增大table_cache。