MySQL表缓存命中率

时间:2012-03-27 14:02:05

标签: mysql performance

请您解释以下MySQL指标的含义:

  

表缓存命中率= open_tables / opened_tables。

据我所知,open_tables是已打开表的当前值,而open_tables是一个计数器,这两个状态变量之间没有任何关联。

1 个答案:

答案 0 :(得分:3)

open_tables是您现在打开的表格数量; opened_tables是自服务器启动以来的表打开操作的总数。

例如,如果您已执行100个表打开操作并且现在打开25个表,则表缓存命中率为25/100 = 1/4。

理由是你试图测量你的表缓存是否足够大,但是打开表与打开表的比率并没有给你全面的了解。阅读“MySQL如何打开和关闭页面”(http://dev.mysql.com/doc/refman/5.0/en/table-cache.html)以更好地理解这一点。

您要做的是查看已打开表的值随着时间的推移 - 如果在系统繁忙时它快速增长,您可能希望增加表缓存大小。但是要小心使表缓存太大 - MySQL需要时间来检查大量缓存的表描述符,以确定下一个要关闭的表。