MySQL 5.6下table_open_cache参数合理配置详解
table_open_cache指定表高速缓存的大小。每当MySQL访问一个表时,如果在表缓冲区中还有空间,该表就被打开并放入其中,这样可以更快地访问表内容。
通过检查峰值时间的状态值Open_tables和Opened_tables,可以决定是否需要增加table_open_cache的值。
如果你发现open_tables等于table_open_cache,并且opened_tables在不断增长,那么你就需要增加table_open_cache的值了(上述状态值可通过SHOW GLOBAL STATUS LIKE ‘Open%tables’获得)。
注意,不能盲目地把table_open_cache设置成很大的值,设置太大超过了shell的文件描述符(通过ulimit -n查看),造成文件描述符不足,从而造成性能不稳定或者连接失败。
测试环境:腾讯云CDB,内存4000M,在控制台查看到table_open_cache=512,监测table_open_cache设置是否合理,是否需要优化。
发现open_tables等于table_open_cache,都是512,说明mysql正在将缓存的表释放以容纳新的表,此时可能需要加大table_open_cache的值,4G内存的机器,建议设置为2048
比较适合的值:
Open_tables / Opened_tables >= 0.85
Open_tables / table_open_cache <= 0.95
如果对此参数的把握不是很准,有个很保守的设置建议:把MySQL数据库放在生产环境中试运行一段时间,然后把参数的值调整得比Opened_tables的数值大一些,并且保证在比较高负载的极端条件下依然比Opened_tables略大。
相关文章
- Python——MySQL操作,使用mysql.connector
- Mac-brew install mysql
- docker方式mysql设置字符集
- 【Mysql】xtrabackup 备份和恢复测试
- linux 中对 mysql 数据表的基本命令
- MySQL选择数据库use与mysql_select_db使用详解
- Mysql Explain 详解(转)
- 详解MySQL数据类型
- mysql 必知必会整理—sql 排序与过滤[三]
- MYSQL随机抽取查询 MySQL Order By Rand()效率问题
- MySQL保留字不能作为字段名使用_Table字段不能设为关键字range,range在mysql中是分区,是mysql的关键字
- MySQL索引详解
- mysql explain执行计划详解
- Mysql连接报错:1130-host ... is not allowed to connect to this MySql server如何处理
- MySQL Study之--Mysql无法启动“mysql.host”
- file /usr/share/mysql/charsets/README from install of MySQL-server-5.1.73-1.glibc23.i386 conflicts with file from package mysql-libs-5.1.73-8.el6_8.i686
- 神奇的 SQL 之 联表细节 → MySQL JOIN 的执行过程(一)
- 两种方式连接mysql
- Linux MySQl 5.7.17 MySQL ERROR 1366(HY000):Incorrect string value 解决方法
- 如何实现MySQL表数据随机读取?从mysql表中读取随机数据
- mysql 数据库 分表后 怎么进行分页查询?Mysql分库分表方案?
- MySQL 配置文件参数详解
- Mysql之mysql工具
- MySQL 一文带你详解 mysql binlog
- MySQL报错Column count of mysql.user is wrong. Expected 43, found 42. Created with MySQL 50568, now run
- MySQL-第二章-体系结构与管理