SHOW STATUS语句查看MySQL数据库的性能参数
1.SHOW STATUS like 'Slow_queries' //慢查询的次数
查看日志
1.配置
centos下 my.cnf
log-slow-queries = /tmp/mysql-slow.log
long_query_time = 2
windows下 my.ini:
log_slow_queries
long_query_time = 2 //查询SQL语句超过两秒的就记录 通常2秒就够了,默认是10秒
注意:
在许多站点中,一个SQL语句超过1秒的执行时间都算慢的了
保存退出,重启MySQL
2.分析
[[email protected] tmp]# tail -f /tmp/mysql_slow.log
Time: 120815 23:22:11
[email protected]: root[root] @ localhost []
Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774
SET timestamp=1294388531;
select count(*) from blog;
Time:执行时间
[email protected]:执行用户
Query_time SQL执行的时间,越长则越慢
Lock_time 在MySQL服务器阶段(不是在存储引擎阶段)等待表锁时间
Rows_sent 查询返回的行数
Rows_examined 查询检查的行数
2.SHOW STATUS like 'Com_(CRUD)'
SHOW (GLOBAL) STATUS like 'Com_select' //查看总共执行select的次数
SHOW (GLOBAL) STATUS like 'Com_insert'
SHOW (GLOBAL) STATUS like 'Com_delete';
3.SHOW STATUS like 'uptime'; //查询当前MySQL本次启动后的运行统计时间
4.SHOW STATUS like 'threads%';
threads_cached //查看线程缓存内的线程的数量
threads_connected //查看当前打开的连接的数量
threads_running //查看激活的(非睡眠状态)线程数。
5.show status like 'Innodb_buffer_pool_%'; //查看相关缓存信息
Innodb_buffer_pool_read_requests:read请求的次数
Innodb_buffer_pool_reads:从物理磁盘中读取数据的请求次数
innodb buffer的read命中率 = (Innodb_buffer_pool_read_requests - Innodb_buffer_pool_reads) / Innodb_buffer_pool_read_requests * 100% //命中率不会低于99%
低于这个值的话就要考虑加大innodb buffer pool
6.show variables like '%innodb_buffer_pool_size%' //命令查看当前缓存的大小
默认是8M(8388608 ),一般来讲这个值肯定是不够的
修改/etc/my.cnf文件,并添加字段innodb_buffer_pool_size = 3G,然后重启mysql 服务