mysql中sql语句=,>的时候的索引设置


https://www.percona.com/blog/2015/04/27/indexing-101-optimizing-mysql-queries-on-a-single-table/

中,提到了在mysql中,如果在sql语句中有各类=,>等符号,应该如何选择索引做了简单的小结

1) SELECT c1, c2 FROM t WHERE c = 100
当然建立(c, c1, c2)索引最高效了

2) 多个=的情况
SELECT * FROM t WHERE c = 100 and d = 'xyz'
索引应该是(c,d)或者(d,c)

3) 有相等也有不等的情况
SELECT * FROM t WHERE c > 100 and d = 'xyz'

这个时候要先(d,c),先选择等于的D在索引顺序前更好

4) 多个相等,不等并存
SELECT * FROM t WHERE c > 100 and b < 10 and d = 'xyz'
这个时候,用(d,c)还是(d,b)要看具体情况

5) 有相等并order的情况
SELECT * FROM t WHERE c = 100 and d = 'xyz' ORDER BY b
原则是首先过滤,再排序,
所以选择建立(d,c,b)(c,d,b)都是不错的选择

6)有不等和order情况
SELECT * FROM t WHERE c > 100 and d = 'xyz' ORDER BY b

这个时候看具体情况:
(d,b),(d,c)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值