索引多列
Indexing multiple columns
假设我有一个 table,其中包含三个简单的列; PersonName
、PersonLastName
和 Phone_Number
。
我已经创建和索引
CREATE INDEX index1 ON phonebook (PersonName,PersonLastName);
当我搜索名字时,性能肯定会提高,但是如果我搜索姓氏呢?这个语句是根据 PersonName
和 PersonLastName
做两个不同的索引还是只为 PersonName
做一个索引?
此语句仅创建一个索引,按 PersonName
排序,然后按 PersonLastName
排序。如果您的查询仅按 PersonLastName
而不是按 PersonName
进行搜索,则它不会有用。但是,您可以按相反的顺序创建附加索引:
CREATE INDEX another_index ON phonebook (PersonLastName, PersonName);
这不仅是可能的 - 事实上,这是一种常见的做法。
假设我有一个 table,其中包含三个简单的列; PersonName
、PersonLastName
和 Phone_Number
。
我已经创建和索引
CREATE INDEX index1 ON phonebook (PersonName,PersonLastName);
当我搜索名字时,性能肯定会提高,但是如果我搜索姓氏呢?这个语句是根据 PersonName
和 PersonLastName
做两个不同的索引还是只为 PersonName
做一个索引?
此语句仅创建一个索引,按 PersonName
排序,然后按 PersonLastName
排序。如果您的查询仅按 PersonLastName
而不是按 PersonName
进行搜索,则它不会有用。但是,您可以按相反的顺序创建附加索引:
CREATE INDEX another_index ON phonebook (PersonLastName, PersonName);
这不仅是可能的 - 事实上,这是一种常见的做法。