之乎者也2011

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

参数优化:其实是MYSQL官方留给我们适用于我们服务器具体情况的一种解决方式 .
两个命令:

show status      #列出MySQL服务器运行各种状态值
Show variables   #列出MYSQL服务器配置信息

1: 慢查询

log_slow_queries=slow_queries   #这个与以前作用基本相同,并且还是需要重启才能生效(ON:为打开off:为关闭)
Slow_launch_time                #执行时间超过2秒则被记录。
slow_query_log                  #这是一个可以在运行时改变的全局变量,表示是否打开慢查询日志,在此处加上即表示ON.


上图代表:系统显示有19054个慢查询。发现后。直接去日志查看就OK。

2: 最大连接数
有时候MYSQL会出现这个错误 ERROR 1040: Too many connections”的情况,这是因为:
访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;
另外一种情况是MySQL配置文件中max_connections值过小。
如图:

最大连接数为500个.

实际连接数为257

蛮好的。
其实有一个公式来判断他的好坏。 实际最大连接数/最大连接数 =85%左右的话。很不错的。
如果10%一下的话。很可能因为你最大连接数配置高了。

3: Key_buffer_size


分配了 256M 的Key_buffer_size ,他主要用来干嘛?

索引命中率高低的平衡参数。

Key_read_requests   #索引的请求
Key_reads           #没用到索引。直接去硬盘扫描去了

那么我们怎么去平衡那。这里还有一个公式

Key_reads/key_read_requests 小于0.1%基本还不错的。1000个请求一个区扫描硬盘。

4: key_blocks_u*

Key_blocks_unused       #表示未使用的缓存簇(blocks)数
Key_blocks_used表       #示曾经用到的最大的blocks数

现在环境,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。Key_blocks_used / (Key_blocks_unused + Key_blocks_used) =80%左右还不错.

5: Open Table情况


这里代表是表缓存 table_cache.

Open_tables  #打开表的数量
Opened_tables #打开过表的数量

我们查询下table_cache

下面的公式很好的。大约这个情况还不错的.
Open_tables / Opened_tables * 100% >= 85%
Open_tables / table_cache * 100% <= 95%

posted on 2011-09-05 05:24  之乎者也2011  阅读(235)  评论(0编辑  收藏  举报