gpt4 book ai didi

sql - 在哪里放置主键

转载 作者:行者123 更新时间:2023-12-04 14:27:52 24 4
gpt4 key购买 nike

据我所知,SQL Server 2008 只允许每个表有一个聚簇索引。为了这个问题,假设我有一个用户提交的故事列表,其中包含以下列。

ID(整数,主键)
标题 (nvarchar)
网址 (nvarchar)
UniqueName (nvarchar) 这是 url slug (blah-blah-blah)
CategoryID(int,FK转Category表)

大多数时候故事永远不会通过 ID 查询。大多数查询将通过 CategoryID 或 UniqueName 完成。

我是索引新手,所以我认为最好在此表上放置 2 个非聚集索引。一个在 UniqueName 上,一个在 CategoryID 上。在阅读了一些有关索引的内容之后,似乎在 UniqueName 上使用聚集索引会非常有益。考虑到 UniqueName 是……唯一的,将主键放在 UniuqeName 上并去掉 ID 字段是否有利?至于 CategoryID,我假设非聚集索引就可以了。

谢谢。

最佳答案

首先,您可以将聚簇索引放在唯一名称上,它不必放在 id 字段上。如果你很少或没有加入这个表,你可以去掉 id。在任何情况下,我都会在唯一名称字段上放置一个唯一索引(您可能会发现这样做并不像您想象的那样唯一!)。

如果你加入很多,我会保留 id 字段,它更小,加入效率更高。

既然你说你是索引新手,我会指出虽然主键在定义时有一个自动创建的索引,但外键没有。您几乎总是希望索引您的外键字段。

关于sql - 在哪里放置主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/575450/

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