多选择条件下的建索引规则

一般来说,SQL语句where选择条件下有两种情况,1,、等值查询,2、范围查询。

基本原则,不要有两个及以上的范围查询,如果有确定范围可以用in ()来替代。

InnoDB的任何二级索引会自带主键索引,所以主键索引不用写进联合索引中。

已经建了一个比较全的联合索引时,为避免重复建索引,SQL where语句中可以带入索引中有的字段,比如索引为(sex,country,region,city,age),当你的查询时不是所有字段都要where检索,假如region不需要检索,要用到该索引,你可能要加上region in (所有区域)。

范围查询的字段,放在联合索引的最后,只能有一个。

索引中的字段在select中和where中都生效。

另外,用explain+SQL语句\G可以看到很多有用的信息,比如是全表扫描还是通过索引。

查询出上百万行数据的排序,order by后面的字段放在索引中,这个没什么好说的,而且该字段最好出现在where语句中,方法同上。

转载于:https://my.oschina.net/u/3768341/blog/1627019

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值