字符串作为主键

时间:2014-03-01 02:10:21

标签: c# sql entity-framework

我知道这已经讨论了很多,我的最终选择是:我将使用字符串作为主键,主要有两个原因:

  1. 我的行数不超过10万
  2. 它会简化很多
  3. 我可以做些什么来提高性能,比如创建索引吗?

    我首先使用实体​​框架代码。

2 个答案:

答案 0 :(得分:4)

创建索引是不必要的,因为PRIMARY KEY提供了UNIQUECLUSTERED索引。

另请注意,大多数RDBMS可以更有效地索引固定长度字段(如CHAR)与可变长度字段(如VARCHAR)。

另一种可能的考虑因素: 一个整数(INT)主键,在您最初用作PRIMARY KEY的字符串值上具有唯一索引。这样可以轻松JOIN整数字段(更不用说节省空间),同时强制执行原始要求。

答案 1 :(得分:1)

尽可能减少VARCHAR的长度。

自动为PRIMARY KEYS创建索引,因此您无需为此列创建任何索引。