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