Mysql 索引最左匹配原则

Mysql 索引最左匹配原则,第1张

他是按照索引字段,第一个字段排序,相等的话,则看第二个字段比较大小。 所以如果查询条件跳过第一个字段,直接查询第二、第三,或者是第三字段的话,那么这个是无序的,自然用不了索引。

则 explain 后的执行情况是:

mysql 的索引最左原则就很清晰了。索引多个字段,会按照字段顺序依次比较大小建立索引,如果跳过这个顺序的话,则索引失效。 前提是没有其他索引进行影响

来试试看

SELECT

* form TABLE

WHERE

id LIKE '%x%'

OR id LIKE '%y%'

ORDER BY

(

(

CASE

WHEN id LIKE '%x%' THEN

2

ELSE

0

END

) + (

CASE

WHEN id LIKE '%y%' THEN

1

ELSE

0

END

)

) ASC

MySQL的排序,使用order by来实现。

order by id asc,表示用id升序排列

order by id desc,表示用id降序排列

当需要用多个字段排序时,order by cdate desc,id asc,表示先用cdate降序排列,cdate相同的再用id升序排列


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

原文地址: http://outofmemory.cn/zaji/8677657.html

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

发表评论

登录后才能评论

评论列表(0条)

保存