84669 personnes étudient
152542 personnes étudient
20005 personnes étudient
5487 personnes étudient
7821 personnes étudient
359900 personnes étudient
3350 personnes étudient
180660 personnes étudient
48569 personnes étudient
18603 personnes étudient
40936 personnes étudient
1549 personnes étudient
1183 personnes étudient
32909 personnes étudient
RT,在遇到一个运行很慢SQL的情况下,如何进行分析、优化、测试?简单说明一下步骤思路;
人生最曼妙的风景,竟是内心的淡定与从容!
如果不知道是哪个sql慢,就开启mysql的慢查询日志。 对记录的日志文件用mysql安装目录下的bin目录下的 mysqldumpslow查看。 具体命令是 mysqldumpslow -s c -t 10 /path/to/slow.log。 可以提取出top10慢的sql语句模式。 这样就找到了哪些语句慢。
找到之后分析的最简单手段是explain查看执行计划。 例如 explain select * from t where xxx order by xxx。
查看explain的结果,可以看出索引使用情况,排序方式等。具体的结果查看mysql官方文档中explain命令的解释最好了。
优化的最主要手段是确保索引建立正确。 如果索引方面没什么可优化的空间,那么多半是表结构设计不合理,或者查询方式组合不合理。 这个就要结合具体的业务去进行数据存储结构或程序架构的优化了。
MySQL 中的explain命令, 可以根据其返还内容分析查询效率。mysql慢查询日志开启后,在日志中也会记录一些查询速度比较慢的 sql语句。
如果不知道是哪个sql慢,就开启mysql的慢查询日志。 对记录的日志文件用mysql安装目录下的bin目录下的 mysqldumpslow查看。 具体命令是 mysqldumpslow -s c -t 10 /path/to/slow.log。 可以提取出top10慢的sql语句模式。 这样就找到了哪些语句慢。
找到之后分析的最简单手段是explain查看执行计划。 例如
explain select * from t where xxx order by xxx。
查看explain的结果,可以看出索引使用情况,排序方式等。具体的结果查看mysql官方文档中explain命令的解释最好了。
优化的最主要手段是确保索引建立正确。 如果索引方面没什么可优化的空间,那么多半是表结构设计不合理,或者查询方式组合不合理。 这个就要结合具体的业务去进行数据存储结构或程序架构的优化了。
MySQL 中的explain命令, 可以根据其返还内容分析查询效率。mysql慢查询日志开启后,在日志中也会记录一些查询速度比较慢的 sql语句。