【MySQL】SQL文调优(B+Tree索引)

原则(最左前缀):

(1)Group By / Order By 中的字段,需要追加索引(index)

(2)join 的 on 关键字后的联合条件,需要追加索引(index)

(3)Where中的条件,需要追加索引(index)

(4)Like条件中, 右模糊查询(’XXX%‘),可以使用索引;左模糊查询(‘%XXX’),不可以使用索引。

(5)straight_join 强制指定表关联,优于left join。

(6)索引字段需要设定为“非空”。

(7)非主键索引列,会索引后自动追加主键索引。

(8)Distinct的字段需要追加索引(index)

MySQL : B+Tree索引

Oracle  : B-Tree索引

查询慢的SQL方法

(1)show variables like '%slow%';

(2)show variables like '%query_time%';   -- 单位(秒)

(3)show variables like 'log_output';

(4)Select * From 'mysql'.slow_log Where sql_text like '%join%';

工具:

  VisualVM,Skywalking,JavaMelody,Alibaba Druid

执行计划确认:

explain

select * from tbl_tmp;

结果确认点:

  (1)type=>ref级别,

  (2)key_len=>越小性能越优,

  (3)Extra=>Order By用。

原文地址:https://www.cnblogs.com/lnsylt/p/13364249.html