文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>[MySQl]open_table和opened_table的区别

[MySQl]open_table和opened_table的区别

时间:2010-09-10  来源:yudotyang

好多人在调优Mysql的时候,总是对open_tables和opend_tables两个参数分别不清。 网上好多解释都是这样的: open_tables:当前打开表的数量 opened_tables:当前已经打开表的数量
很简单的解释,可是这两句话看起来有点类似。
下面我来解释一下: open_tables:是当前在缓存中打开表的数量。 opened_tables:是mysql自启动起,打开表的数量。
我们知道,假如没有缓存的话,那么mysql服务在每次执行一个语句的时候,都会先打开一个表。当sql语句执行完成后,则把这个表关掉。这就是opend_tables中的值。
而,open_tables这个值,是mysql在使用缓存的情况下,存储在缓存中的表的个数。
我们可以这样做实验:执行flush tables;这个命令是mysql用来刷新缓存的。当这个命令执行后,我们会看到 open_tables这个值被清零了。但是opened_tables这个值还是保持原来值不变。
但是当我们关闭mysql服务,再重启后,opened_tables这个值也被清零了。
由此,得出上述两个值的结论。
这也就是为什么说当open_tables这个值接近于table_buffer这个值的时候,同时opened_tables的值在不断的增加,这个时候就要考虑增大table_buffer这个缓存值了。
解释如下: 因为open_tables的值接近于table_buffer,说明分配的缓存已经被用完了。而opened_tables这个值又在高速增加,说明mysql在不断的打开表。也就说明缓存中并没有这些要打开的表。所以说,缓存应该是要增加了。因为如果表在缓存中,那么打开表的时候这两个值是不会增加的。 【完】
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载