其实不应该叫性能优化吧,因为咱们也不是专业的性能优化,只能根据mysql的一些具体的情况来调试咱们的数据库,

show global status;

可以列出mysql服务器运行各种状态值

show variables;

查询mysql服务器配置信息

show variables like '%slow%';

慢查询,通过这个可以查询一下有问题的SQL语句。

show variables like 'max_connections';

查询最大连接数。

show variables like 'max_used_connections';

查询使用的最大连接数。其实连接数也并不是越大越好,在80-85%之间的使用率较好吧,不过你的网站要是数量级式的增长或者波动,那么就需要重新考虑一下配置了。

=============================

接下来就是 key_buffer_size 这个是比较大的一个参数吧。

show variables like 'key_buffer_size';

show global status like "key_read"; 来查看 使用情况。

key_cache_miss_rate = key_reads / key_read_requests * 100%

key_cache_miss_rate在0.1%以下都很好(每1000个请求有一个直接读硬盘),如果key_cache_miss_rate在0.01%以下的话,key_buffer_size分配的过多,可以适当减少。

 

=============================================

key_blocks_*参数:

show global status like 'key_blocks';

key_blocks_unused表示未使用的缓存簇(blocks)数,key_blocks_used表示曾经用到的最大的blocks数,比如这台服务器,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。比较理想的设置:

key_blocks_used / (key_blocks_unused + key_blocks_used) * 100% ≈ 80%

=============================================

open_tables表示打开表的数量,opened_tables表示打开过的表数量,如果opened_tables数量过大,说明配置中table_cache(5.1.3之后这个值叫做table_open_cache)值可能太小,我们查询一下服务器table_cache值:

show global status like 'open%tables%';

show variables like 'table_cache';

open_tables / opened_tables * 100% >= 85%

open_tables / table_cache * 100% <= 95%

 

其实还有很多,我也在总结,有待日后更新吧,想对与我们小站长来说,

http://www.72xit.com/419.jsp

就够用了