SQL优化及索引失效汇总

SQL优化方案

  1. 注意具有索引列的查询条件,避免造成索引失效(具体看如下的索引失效规则)
  2. 对于数据重复多的列,无需建立索引
  3. 索引并非越多越好,索引越多,对增删改的速度就会越慢
  4. select 结果中,避免使用*符号,只返回有用的字段

使查询放弃索引进行全表搜索的操作

  1. where语句中使用 != 和 <>
  2. 使用 null判断,例如: where name is null / name is not null
  3. 索引列数据中包含 null,索引失效
  4. 在范围条件语句后面的列索引都会失效;例如 where name = ‘Kellan’ and age > 10 and sex = ‘男’; 其中只有name字段的索引有效
  5. 模糊查询中,将%放在字段前面,则索引失效;即 where name like ‘%Kellan’ . 与 where name like ‘Kellan%’。前者索引失效
  6. 避免直接对索引字段进行 计算与使用函数;都会使索引失效
  7. 避免使用 or条件判断,索引会失效,进行全表搜索; 可以使用 union代替
  8. in 和 not in要慎用,否则会导致全表搜索; 如果是连续的值,可是使用between代替;或者可以先使用子查询,降低搜索的数据量,再使用in 和 not in; 比如: select * from (子查询) where id in (1,2,3);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值