gpt4 book ai didi

链接表上的 SQL 索引策略

转载 作者:行者123 更新时间:2023-12-04 22:29:50 26 4
gpt4 key购买 nike

我经常发现自己在创建“链接表”。例如,下表将用户记录映射到事件记录。

CREATE TABLE [dbo].[EventLog](
[EventId] [int] NOT NULL,
[UserId] [int] NOT NULL,
[Time] [datetime] NOT NULL,
[Timestamp] [timestamp] NOT NULL
)

出于此问题的目的,请假设 EventId 和 UserId 的组合是唯一的,并且所讨论的数据库是 MS SQL Server 2008 安装。

我遇到的问题是我永远不确定应该如何为这些表编制索引。例如,我可能想要列出特定事件的所有用户,或者我可能想要列出特定用户的所有事件,或者,也许,检索特定的 EventId/UserId 记录。我考虑过的索引选项包括:

  1. 在 EventId 和 UserId 上创建复合主键(但我了解索引在通过 UserId 访问时不会有用自己)。
  2. 在 EventId 和 UserId 上创建一个复合主键并添加一个UserId 的补充索引。
  3. 在 EventId 上创建主键并在用户 ID。

如有任何建议,我们将不胜感激。

最佳答案

索引旨在解决性能问题。如果您还没有遇到这样的问题并且不能确切地知道您将在何处遇到麻烦,那么您不应该创建索引。指数相当昂贵。因为它不仅占用磁盘空间,还会造成写入或修改数据的开销。所以你必须清楚地了解你通过创建索引决定的具体性能问题是什么。因此,您会意识到创建它的必要性。

关于链接表上的 SQL 索引策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19540855/

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