当前位置:Gxlcms > mysql > MySQL性能优化之table_cache配置参数浅析

MySQL性能优化之table_cache配置参数浅析

时间:2021-07-01 10:21:17 帮助过:34人阅读

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

缓存机制

当某一连接访问一个表时,MySQL会检查当前已缓存表的数量。如果该表已经在缓存中打开,则会直接访问缓存中的表已加快查询速度;如果该表未被缓存,则会将当前的表添加进缓存并进行查询。

在执行缓存操作之前,table_cache用于限制缓存表的最大数目:如果当前已经缓存的表未达到table_cache,则会将新表添加进来;若已经达到此值,MySQL将根据缓存表的最后查询时间、查询率等规则释放之前的缓存。

参数调优

一般来说,可以在phpmyadmin中查看Open_tables与Opened_tables的值,也可以执行

代码如下:
mysql> show global status like 'open%_tables';

查看当前的open_tables情况,如图:

来查看这两个参数的值。其中Open_tables是当前正在打开表的数量,Opened_tables是所有已经打开表的数量。

如果Open_tables的值已经接近table_cache的值,且Opened_tables还在不断变大,则说明mysql正在将缓存的表释放以容纳新的表,此时可能需要加大table_cache的值。对于大多数情况,

比较适合的值:

代码如下:

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

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

清空缓存

执行

代码如下:
mysql > flush tables;

命令将会清空当前所有缓存的表。

您可能感兴趣的文章:

  • MySQL 性能优化的最佳20多条经验分享
  • MySQL数据库引擎介绍、区别、创建和性能测试的深入分析
  • MySQL性能优化之max_connections配置参数浅析
  • 浅析Mysql Join语法以及性能优化
  • MYSQL性能优化分享(分库分表)
  • 可以改善mysql性能的InnoDB配置参数
  • MySQL实现批量插入以优化性能的教程
  • MySQL性能优化之路---修改配置文件my.cnf
  • MySQL性能设置
  • MySQL性能优化配置参数之thread_cache和table_cache详解
  • MySQL配置文件my.cnf中文详解附mysql性能优化方法分享
  • 大幅优化MySQL查询性能的奇技淫巧
  • MySQL查询随机数据的4种方法和性能对比
  • mysql服务性能优化—my.cnf_my.ini配置说明详解(16G内存)
  • mysql性能优化之索引优化
  • MySQL性能分析工具profile使用教程
  • 从MySQL得到最大的优化性能
  • MySQL性能全面优化方法参考,从CPU,文件系统选择到mysql.cnf参数优化

人气教程排行