如何调优SQL

以MySQL为例

如何定位并优化慢查询Sql?

联合索引的最左匹配原则的成因?

索引是建立得越多越好吗?

一、如何定位并优化慢查询Sql?

根据慢日志定位慢查询sql

使用explain等工具分析sql

修改sql或者尽量让sql走索引

查看mysql变量

SHOW VARIABLES LIKE ‘%quer%‘

如何调优SQL

显示慢查询的数量

SHOW STATUS LIKE ‘%slow_queries%‘

如何调优SQL

打开慢查询日志

SET GLOBAL slow_query_log = ON;

设置慢查询时间为1秒

SET GLOBAL long_query_time = 1

然后重新连接才能生效

慢查询实践

如下面的查询语句,查过了1秒

如何调优SQL

然后打开慢查询日志

如何调优SQL

 可以发现执行了6秒,实际上就是6秒。

然后使用explain

如何调优SQL

explain的关键字段

当type为index或者All时,表示走的是全表扫描,这条sql是慢查询,需要优化

如何调优SQL

extra字段

extra中出现以下2项意味着MYSQL根本不能使用索引,效率会受到重大影响。应尽可能对此进行优化

如何调优SQL

解决方法:

修改sql或者尽量让sql走索引。

相关推荐