sql优化

2023-08-29  本文已影响0人  垂直居中的句号

1.使用explain分析,避免全表扫描

2.不走索引的几种情况

(1).like以%开头

(2).不遵循where条件最左原则

(3).查询字段有函数、计算、字段类型转换等

(4).where条件中使用or

(5).where条件判断索引列 is null

(6).索引列使用!=,<>会导致不走索引

(7).in中包含太多值,造成效率慢,exists代替in,

in 优先执行子查询,适用于左边大表,右边小表。exists 优先执行主查询 ,适用于左边小表,右边大表。不管是用in,还是exists关键字,其核心思想都是用小表驱动大表。

链接查询代替in子查询,mysql执行子查询时,需要创建临时表,查询完毕后,需要再删除这些临时表,有一些额外的性能消耗。

(8).避免使用having,可用where代替。

(9).小表驱动大表,

3.避免使用select  count(*)、select  *

4.order by 使用索引列 避免使用表达式

5.union all 效率比union高

6.jion字段列使用索引列,且字段类型相同

http://t.csdn.cn/awMH1

上一篇下一篇

猜你喜欢

热点阅读