[摘要]+------------------------+-------+1 row in set (0.00 sec)针对MyISAM:mysql每打开一个表,都会读入一些数据到table_open_c...
+------------------------+-------+
1 row in set (0.00 sec)
针对MyISAM:
mysql每打开一个表,都会读入一些数据到table_open_cache 缓存 中,当mysql在这个缓存中找不到相应的信息时,才会去磁盘上直接读取,所以该值要设置得足够大以避免需要重新打开和重新解析表的定义,一般设置为max_connections的10倍,但最好保持在10000以内。
还有种依据就是根据状态open_tables的值进行设置,如果发现open_tables的值每秒变化很大,那么可能需要增大table_open_cache的值。
table_definition_cache 通常简单设置为服务器中存在的表的数量,除非有上万张表。
针对InnoDB:
与MyISAM不同,InnoDB的open table和open file并无直接联系,即打开frm表时其相应的ibd文件可能处于关闭状态;
故InnoDB只会用到table_definiton_cache,不会使用table_open_cache;
其frm文件保存于table_definition_cache中,而idb则由innodb_open_files决定(前提是开启了innodb_file_per_table),最好将innodb_open_files设置得足够大,使得服务器可以保持所有的.ibd文件同时打开。
5 最大连接数
mysql> show global status like 'Max_used_connections';
+----------------------+-------+
关键词:MySQL几点重要的性能指标计算与优化的办法代码总结