日期:2014-05-16 浏览次数:20370 次
Key_buffer_size:
这个参数主要用来设置整个mysqlkey cache大小。一般来说,如果运行在32位平台,一般不超过2G。如果是运行在64位平台则不做考虑此限制,但最好也不超过4G。
只能myisam引擎的表起作用,用来缓存索引数据,决定索引处理的速度,加快读索引速度。
如何判断一个keybuffer 设置的好坏,可以通过下面的方式
Key_reads:代表磁盘读取数
Key_read_requests:代表读总的请求数
Key_reads/key_read_requests 两者比重尽可能的低,至少
几个重要的比值:
Key_buffer_read_hitratio=(1-key_reads/key_read_requests)*100%
Key_buffer_usageratio=(1-key_block_used)/(key_blocks_used+key_blocks_unused))*100%
Key_buffer_write_hitration=(1-key_writes/key_write_requests)*100%
Table_cache:
Table_cache指定表高速缓存的大小,每当mysql访问一个表时,如果在表缓存中还有空间,该表就被打开并放入其中,这样可以更快访问表内容。可以通过查看峰值时的open_tables和opened_tables,决定是否需要增加table_cache值,如果open_tables等于table_cache,并且opened_tables在不断增长,那就需要增加table_cache值。
我们需要注意的是,open_tables值也不能设的过高,或者会用完文件描述符,而出现如下错误
Can't open file: '.\data\test_table.frm'(errno: 24)
shell> perror 24
OS error code 24: Too many open files
如果出现了上述问题,可以参考这篇文章《mysql打开的文件描述符限制》来解决问题
对于mysql如何打开和关闭一个表,可以查看另一篇文章《mysql如何打开和关闭表》