MySQL性能优化的table_cache配置参数分析
缓存机制
当一个表访问连接时,MySQL检查当前缓存表的数量。如果表在缓存中打开,它将直接访问缓存中的表,从而加快了查询速度。如果表没有被缓存,则当前表将被添加到缓存中并进行查询。
执行缓存操作之前,table_cache用来限制缓存表的最大数目:如果当前缓存表没有达到table_cache,它将添加新表;如果这个值已经达到了MySQL,最后根据查询缓存表时间和查询在缓存释放率规则。
参数
一般来说,你可以看看在phpMyAdmin open_tables和opened_tables的值,你可以执行它
复制代码代码如下:MySQL >显示全球地位like'open % _tables;
看目前的open_tables情况,如图:
看看这两个参数的值,open_tables是电流表被打开的数量,opened_tables是所有已打开的表的数量。
如果open_tables值接近table_cache价值和opened_tables仍在增加,这意味着MySQL释放缓存表以容纳新的表。在这个时候,它可能需要增加table_cache.for大多数情况下的价值,
更合适的值:
复制代码代码如下所示:
open_tables / opened_tables > = 0.85
open_tables / table_cache < = 0.95
如果这个参数是不太准确的把握,VPS管理提供了一个非常保守的建议:一段时间在生产环境中测试运行MySQL数据库,然后调整参数的值大于opened_tables的价值,并在较高负荷的极端情况仍略大于opened_tables。
清除缓存
实施
复制代码代码如下;
该命令将清空当前缓存的所有表。