参数优化:其实是MYSQL官方留给我们适用于我们服务器具体情况的一种解决方式 .
介绍一个命令:
show status ;列出MySQL服务器运行各种状态值
Show variables 列出MYSQL服务器配置信息/
一:慢查询
log_slow_queries=slow_queries 这个与以前作用基本相同,并且还是需要重启才能生效(ON:为打开off:为关闭)
Slow_launch_time 执行时间超过2秒则被记录。
slow_query_log 这是一个可以在运行时改变的全局变量,表示是否打开慢查询日志,在此处加上即表示ON.
上图代表:系统显示有19054个慢查询。发现后。直接去日志查看就OK。
二、最大连接数
有时候MYSQL会出现这个错误 ERROR 1040: Too many connections”的情况,
一种是访问量确实很高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力.
另外一种情况是MySQL配置文件中max_connections值过小:
看下图:
最大连接数为500个.
实际连接数为257
蛮好的。
其实有一个公式来判断他的好坏。 实际最大连接数/最大连接数 =85%左右的话。很不错的。
如果10%一下的话。很可能因为你最大连接数配置高了。
三、Key_buffer_size
分配了256M的Key_buffer_size。他主要用来干吗?
索引命中率高低的平衡参数。
Key_read_requests 索引的请求
Key_reads 没用到索引。直接去硬盘扫描去了
那么我们怎么去平衡那。这里还有一个公式
Key_reads/key_read_requests 小于0.1%基本还不错的。1000个请求一个区扫描硬盘。这个小意思.
四、key_blocks_u*
Key_blocks_unused表示未使用的缓存簇(blocks)数
Key_blocks_used表示曾经用到的最大的blocks数
现在环境,所有的缓存都用到了,要么增加key_buffer_size,要么就是过渡索引了,把缓存占满了。Key_blocks_used / (Key_blocks_unused + Key_blocks_used) =80%左右还不错.
五、Open Table情况
这里代表是表缓存 table_cache.
Open_tables 打开表的数量
Opened_tables 打开过表的数量
我们查询下table_cache
下面的公式很好的。大约这个情况还不错的.
Open_tables / Opened_tables * 100% >= 85%
Open_tables / table_cache * 100% <= 95%
今天首先介绍到这里,其实大家多实践积累点前辈的经验。这才是我们的财富。
下篇文章我会继续介绍
OK了。