在表上创建索引的问题

时间:2011-03-23 17:27:59

标签: sql-server-2005

我有一个关于索引列的问题,这里是

我有一个包含3列数据类型的表,如下所示。

VARCHAR(255) --- Have many duplicates (say 10% unique records)
VARCHAR(64) --- Have many duplicates (say 10% unique records)
VARCHAR(MAX) --- Surely can’t choose this COL as key col for index

如果我想在此表上创建索引,在这种情况下我该怎么做?

OR

我应该创建一个自动增量列吗?

你能帮我解决这个问题吗?

谢谢, 拉胡

1 个答案:

答案 0 :(得分:0)

如果您愿意,可以在每个列上创建索引,如果它们具有唯一数据则无关紧要。

索引用于在索引列上更快地检索信息,搜索和过滤。

索引也可以应用于列(字段)的组合。

所以,你可以在field1上添加一个索引,在field2上添加另一个索引,在field3中添加另一个,在(field1,field3)组合中添加另一个,等等。什么是最好的,取决于你计划用表做什么用途。

另一方面,如果您要创建Primary Key而不是index

选择主键列:

  1. 该列必须唯一标识每一行(因此,您不能使用具有重复项的field1或field2)。

  2. 如果它尽可能小,那就更好了,所以当在其他表中用作外键时,它不会占用太多空间(以及其他原因)。所以,你最好不要使用field3 - 尽管你可以在测试数据库或小型数据库中执行此操作,或者如果您不关心性能。

  3. 所以,是的,我的建议是添加另一个自动增量列并将其用作主键。


    至于唯一索引:

    创建主键时,也会创建该字段的唯一索引。

    您也可以(或没有主键)在字段(或其组合)上创建唯一索引。在字段1和2具有重复项的情况下,您可以在field3上创建唯一索引,或者在其上添加自动递增字段和唯一索引。