MySQL 最左前缀(Leftmost Prefix) & 组合索引(复合索引,多列索引)

Posted Trace Spaces

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 最左前缀(Leftmost Prefix) & 组合索引(复合索引,多列索引)相关的知识,希望对你有一定的参考价值。

资料来源于网络,仅供参考学习。

CREATE TABLE test(
a INT,
b INT,
c INT,
KEY idx(a,b,c)
);

优: SELECT * FROM test WHERE a=10 AND b>50;
差: SELECT * FROM test WHERE b>50;

优: SELECT * FROM test ORDER BY a;
差: SELECT * FROM test ORDER BY b;
差: SELECT * FROM test ORDER BY c;

优: SELECT * FROM test WHERE a=10 ORDER BY a;
优: SELECT * FROM test WHERE a=10 ORDER BY b;
差: SELECT * FROM test WHERE a=10 ORDER BY c;

优: SELECT * FROM test WHERE a>10 ORDER BY a;
差: SELECT * FROM test WHERE a>10 ORDER BY b;
差: SELECT * FROM test WHERE a>10 ORDER BY c;

优: SELECT * FROM test WHERE a=10 AND b=10 ORDER BY a;
优: SELECT * FROM test WHERE a=10 AND b=10 ORDER BY b;
优: SELECT * FROM test WHERE a=10 AND b=10 ORDER BY c;

优: SELECT * FROM test WHERE a=10 AND b=10 ORDER BY a;
优: SELECT * FROM test WHERE a=10 AND b>10 ORDER BY b;
差: SELECT * FROM test WHERE a=10 AND b>10 ORDER BY c;

 































以上是关于MySQL 最左前缀(Leftmost Prefix) & 组合索引(复合索引,多列索引)的主要内容,如果未能解决你的问题,请参考以下文章