什么是联合索引?

联合索引(Composite Index)是基于两个或者更多列的索引。所谓的联合索引并不是单纯地将各个列上的索引组合起来,而是将几个列作为一个整体建立一个索引。这样,数据库系统可以快速找到给定索引列的子集。

例如,假设我们有一个Person表,该表有三列:FirstName,LastName和BirthDate。 如果我们经常需要查询具有特定姓和名的人,那么我们可以创建一个联合索引,如下所示:

CREATE INDEX index_name ON Person (LastName, FirstName)

这样,当执行如下查询时:
SELECT * FROM Person WHERE LastName='Doe' AND FirstName='John'
MySQL 将多次快速找到 LastName 为 ‘Doe’ 和 FirstName 为 ‘John’ 的条目,因为它们在索引中一起存在。

联合索引遵循最左前缀原则,就是说如果联合索引有三个字段(A,B,C),那么你查A,A,B或A,B,C时,都可以利用上这个索引。但查询单独B,B,C或者C并不能利用这个索引。所以设立联合索引的顺序也很重要,需要根据查询的需求来排序。

发表评论

后才能评论