我知道这已经讨论了很多,我的最终选择是:我将使用字符串作为主键,主要有两个原因:
我可以做些什么来提高性能,比如创建索引吗?
我首先使用实体框架代码。
答案 0 :(得分:4)
创建索引是不必要的,因为PRIMARY KEY
提供了UNIQUE
,CLUSTERED
索引。
另请注意,大多数RDBMS可以更有效地索引固定长度字段(如CHAR
)与可变长度字段(如VARCHAR
)。
另一种可能的考虑因素:
一个整数(INT
)主键,在您最初用作PRIMARY KEY
的字符串值上具有唯一索引。这样可以轻松JOIN
整数字段(更不用说节省空间),同时强制执行原始要求。
答案 1 :(得分:1)
尽可能减少VARCHAR
的长度。
自动为PRIMARY KEYS
创建索引,因此您无需为此列创建任何索引。