mysql负向查询(>,<,in,not in……)以及between的索引使用情况

mysql负向查询(>,<,in,not in……)以及between的索引使用情况,第1张

经常在网上看到这样的mysql索引优化:使用between代替>和<,可以避免索引无法使用的情况,以及in无法使用索引等。其实这都是有一定误区的。首先声明一个观点:>,<,in,between等等,都是可以使用索引的。

测试用表:one,数据2621440行,版本:5.5.53

至于其它如in这些,由于时间有效,就不一一验证了。所以,网上的信息不可尽信,还是要自己动手验证

mysql的between索引会失效是设置错误造成的,解决方法为:

1、新建一个员工表,在表上新建一个name,age,pos的复合索引。

2、索引建立好以后,如何避免索引失效。全值匹配最爱。

3、如果查询语句的where中没有name查询语句,只有age和pos,这样的话就会导致索引失效了。

4、假如查询语句只有根据name进行where查询时用到了索引。

5、要遵守最左前缀法则,指的是查询从索引的最左前列开始并且不跳过索引中的列。

6、现在假如跳过了一个查询条件,但是最前面的索引列在的话索引就不会失效了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6693338.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-26
下一篇 2023-03-26

发表评论

登录后才能评论

评论列表(0条)

保存