跳到主要内容

简述什么是最左前缀原则?什么是最左匹配原则?

参考答案:

最左前缀原则(Leftmost Prefix Rule)是在数据库查询中使用复合索引的一种规则。当创建包含多个列(如A、B、C)的复合索引时,最左前缀原则要求查询中的过滤条件必须从索引的最左边开始,并且不能跳过中间的列。只有当查询中的过滤条件与索引的最左前缀完全匹配时,索引才能被充分利用。例如,在复合索引(A,B,C)和查询语句SELECT * FROM my_table WHERE A='value1' AND C='value2'中,最左前缀原则要求查询条件中必须包含列A,而不能直接使用列C进行过滤。

最左匹配原则(Leftmost Matching Rule)也是针对联合索引而言的。它指的是查询条件中从最左边的列开始,任何连续的索引列都能匹配上。然而,如果遇到范围查询(如>、<、between、like),匹配就会停止。例如,如果建立了(a,b)顺序的索引,查询条件b = 2是无法匹配到(a,b)索引的;但如果查询条件是a = 1 AND b = 2或者a = 1,就可以匹配到索引,因为数据库优化器会自动调整a,b的顺序。再比如,如果建立了(a,b,c,d)顺序的索引,查询条件a = 1 AND b = 2 AND c > 3 AND d = 4中,d是无法使用索引的,因为c字段是一个范围查询,它之后的字段会停止匹配。

总的来说,最左前缀原则和最左匹配原则都是为了提高数据库查询效率而设计的。它们要求查询条件必须从索引的最左边开始,并且尽可能连续地匹配索引列,以充分利用索引的优势。