MySQL 使用order by让含有in语句的SQL的索引生效

data_node_rights6表当前已创建索引:

UK    nodeId, companyId, operateOjbect, deleteFlag         
FK    nodeId           

未用到索引的SQL语句:

EXPLAIN SELECT
    *
FROM
    data_node_rights_9
WHERE
    companyId = 002019042411521713700004478023
AND operateOjbect = 002019042411521722800004543517
AND nodeId IN (
    002020031918313294600000255615,
    002020031918314212100000757898
)
AND deleteFlag = 0

运行结果:

 

 使用到索引的SQL语句:

EXPLAIN SELECT
    *
FROM
    data_node_rights_9
WHERE
    companyId = 002019042411521713700004478023
AND operateOjbect = 002019042411521722800004543517
AND nodeId IN (
    002020031918313294600000255615,
    002020031918314212100000757898
)
AND deleteFlag = 0
ORDER BY id

运行结果:

 

posted @ 2020-03-24 17:13  王晓鸣  阅读(550)  评论(0)    收藏  举报