OAuth使用者模型的主键

时间:2014-11-26 12:32:36

标签: sql sql-server database oauth oauth-2.0

我一生都在为我的实体使用自动增量主键值。也就是说,int主键。

即使是现在,当我阅读有关使用什么作为主键的讨论时,获胜组始终是支持int键的组。

但是,我想假设我要存储使用我的网络服务的消费者列表。 OAuth客户,具体而言。

将存储consumerIdconsumerSecret以及其他相关信息。

现在,当用户注册为新的消费者时,将生成consumerId。此id应该是唯一

在这种情况下使用int主键是否有优势?事实上,消费者在登录时会向我提供id,而不是他们的int primary key。因此,查询将使用此id进行搜索。

另外,作为一个重要提示,此id的固定长度为64个字符,因此索引应该比使用nvarchar更好。

nchar主键有哪些优点和缺点?

PS :我使用Microsoft SQL Server作为数据库引擎。

1 个答案:

答案 0 :(得分:0)

非数字主键带来额外的开销。

- >>>在此表上执行搜索时,引擎会在与SARG进行比较时花费时间。

- >>>在任何DML(插入,更新,删除)期间,整个树可能需要由引擎进行洗牌以保持平衡,并且由于大量数据类型的混乱,可能会导致性能下降。

在您的情况下

但是,如您所说,搜索将在ConsumerID上,将此列编入索引是有意义的。非聚簇索引只会导致查找增加。

我看到的最好的选择是根本不去索引,而是使用Full Text Search功能来搜索ConsumerID令牌。