MySQL性能调优 - Table_cache(table_open_cache)

table_cache是一个非常重要的MySQL性能参数,它在5.1.3之后的版本中叫做table_open_cache。table_cache主要用于设置table高速缓存的数量。[color=red]由于每个客户端连接都会至少访问一个表,因此此参数的值与max_connections有关。[/color]

[size=small][b]缓存机制[/b][/size]

当某一连接访问一个表时,[color=blue]MySQL会检查当前已缓存表的数量[/color]。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。
[color=red]在执行缓存操作之前,table_cache用于限制缓存表的最大数目:如果当前已经缓存的表未达到table_cache,则会将新表添加进来;若已经达到此值,MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。[/color]

[size=small][b]参数调优[/b][/size]

一般来说,可以在phpmyadmin中查看[color=red]Open_tables与Opened_tables[/color]的值,也可以执行


mysql> show global status like 'open%_tables';


tu

来查看这两个参数的值。[color=red]其中Open_tables是当前正在打开表的数量[/color],[color=blue]Opened_tables是所有已经打开表的数量[/color]。
如果Open_tables的值已经接近table_cache的值,且Opened_tables还在不断变大,则说明[color=blue]mysql正在将缓存的表释放以容纳新的表,此时可能需要加大table_cache的值。[/color]对于大多数情况,
比较适合的值:

Open_tables / Opened_tables >= 0.85
Open_tables / table_cache <= 0.95

如果对此参数的把握不是很准,VPS管理百科给出一个很保守的设置建议:[color=red]把MySQL数据库放在生产环境中试运行一段时间,然后把参数的值调整得比Opened_tables的数值大一些,并且保证在比较高负载的极端条件下依然比Opened_tables略大。[/color]

参数值可以在my.cnf文件中设置。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值