我有一个问题,请你帮忙吗? 我在User table_中为web-cms设计了一个数据库,其中包括:UserID,Username,Password,FirstName,LastName,... _这是我必须在其上创建索引的最佳选择,用户名或FirstName和LastName ?或两者兼而有之? 默认情况下,UserID是用户表的聚簇索引,因此下一个索引必须是非聚簇的。但我不确定UserID是聚簇索引。由于这是一个网站,许多用户每天都可以注册或删除他们的帐户,这是否是在UserID上创建聚集索引的好选择? 我正在使用sql server 2008
答案 0 :(得分:1)
您应该在通常按顺序请求的字段上定义聚簇索引,或者包含大量不同的值,或者在对joion表的查询中使用。所以这通常意味着主键是一个很好的候选者。
非聚簇索引适用于查询的where子句中使用的字段。
确定您创建索引的字段是特定于您的应用程序的字段。如果你有非常关键的查询使用名字和姓氏字段,那么我会说是,否则可能不值得努力。
就删除帐户的人而言,我确信您不打算从表中删除该行。通常您只是将它们标记为非活动状态,因为可能受此用户影响的所有其他相关表会发生什么?