索引多列

Indexing multiple columns

假设我有一个 table,其中包含三个简单的列; PersonNamePersonLastNamePhone_Number

我已经创建和索引

CREATE INDEX index1 ON phonebook (PersonName,PersonLastName);

当我搜索名字时,性能肯定会提高,但是如果我搜索姓氏呢?这个语句是根据 PersonNamePersonLastName 做两个不同的索引还是只为 PersonName 做一个索引?

此语句仅创建一个索引,按 PersonName 排序,然后按 PersonLastName 排序。如果您的查询仅按 PersonLastName 而不是按 PersonName 进行搜索,则它不会有用。但是,您可以按相反的顺序创建附加索引:

CREATE INDEX another_index ON phonebook (PersonLastName, PersonName);

这不仅是可能的 - 事实上,这是一种常见的做法。