赞
踩
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
1. 根据慢查询日志定位慢查询sql
2. 使用explain等工具分析sql执行计划
3. 修改sql或者尽量让sql走索引
set global slow_query_log=on;
set global long_query_time=1;
show global variables like ‘slow_query_log_file’
结果会发现慢日志默认路径就是MySQL的数据目录
show variables like ‘%quer%’;
CREATE TABLE `person_info_large` (
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
`account` VARCHAR (10),
`name` VARCHAR (20),
`area` VARCHAR (20),
`title` VARCHAR (20),
`motto` VARCHAR (50),
PRIMARY KEY (`id`),
UNIQUE(`account`),
KEY `index_area_title`(`area`,`title`)
) ENGINE = INNODB AUTO_INCREMENT = 1 DEFAULT CHARSET = utf8
可以看到Query_time: 6.337729s,超过了1s,所以会被记录
关注: Rows_exanined 扫描行数 / Rows_sent 返回行数
上面这种方式是用系统自带的慢查询日志查看的,如果觉得系统自带的慢查询日志不方便查看,可以使用pt-query-digest或者mysqldumpslow等工具对慢查询日志进行分析。
mysqldumpslow -t 10 /data/mysql/mysql-slow.log #显示出慢查询日志中最慢的10条sql
注:mysqldumpslow工具还有其他参数,以提供其他功能,这里,只以最基本的-t做了介绍。
mysqldumpslow是mysql安装后就自带的工具,用于分析慢查询日志,但是pt-query-digest却不是mysql自带的,如果想使用pt-query-digest进行慢查询日志的分析,则需要自己安装pt-query-digest。pt-query-digest工具相较于mysqldumpslow功能多一点。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。