gpt4 book ai didi

搜索字段上的 SQL 索引,我应该包括 Id

转载 作者:行者123 更新时间:2023-12-02 02:16:57 24 4
gpt4 key购买 nike

假设我有一个典型的客户表;

Id Int Identity Primary Key, 
FirstName varchar(255),
LastName varchar(255),
Phone VarChar(30)

因此主键在 Id 上创建了聚集唯一索引。

为了加快搜索速度,我想为名称字段添加索引。

我的问题是我是否应该将 Id 添加到这些索引中,或者这些索引是否会将自己绑定(bind)到主键。

例如;

Create Index IX_Customer_FirstLastName On Customers(FirstName, LastName, Id)

...是不是矫枉过正了?

下面的方法效率更高还是更低?

Create Index IX_Customer_FirstLastName On Customers(FirstName, LastName)

TIA

最佳答案

ID 添加到您的其他索引是没有意义的。如果您有大量具有相同 firstName lastName 组合的行,并且您已经知道 ID...

但如果您已经知道要搜索的记录的 ID,则可以使用聚簇索引进行搜索。

此外,每个非聚集索引都已经包含聚集索引的值,以便它可以在使用非聚集索引找到该行后使用聚集索引查找该行。 You wouldn't have to include ID in your non-clustered index if you wanted to make it a covering index for the fields (FirstName, LastName, Id)

最后请注意,如果您使用 FirstNameLastName 创建单个索引,则该索引将仅用于包含 FirstName 的搜索,你的索引的前沿。如果您计划仅使用 LastName 或仅使用 FirstName 执行搜索,请创建两个索引,每列一个。

关于搜索字段上的 SQL 索引,我应该包括 Id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10014871/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com