表标识符的int或guid

时间:2012-11-02 18:40:29

标签: sql sql-server int guid identifier

  

可能重复:
  SQL primary key, INT or GUID or..?

在sql server表中使用唯一标识符的最佳做法是什么?

我见过有关使用guid或int的文章,各有利弊。

我希望使用以下主体,对于外部标识符,应使用guid,但对于内部标识符,最好使用int。

我正在寻找关于这个原则的反馈和关于最佳方法的指导。

2 个答案:

答案 0 :(得分:0)

我同意你的原则。在URL中公开int会使网站访问者猜测,比如更改数字以查看网站的反应。 URL类型中的int也显示数据库的大小。我不希望这样。我喜欢网址中的Guids。

答案 1 :(得分:0)

我喜欢所有表格的PK的聚簇标识列。

  1. 它们更容易使用,因为我是一个人。
  2. 他们需要更少的存储空间(记住索引也使用你的PK)
  3. 如果我需要创建一个不可猜测的标识符,我还会使用guid列,但我仍然有我的标识列。

    我曾经见过使用guids作为集群pk的一个引人注目的论点,它仅限于非常高的插入场景(我记得每秒数百个)。在这种情况下,您不希望一个硬盘驱动器头执行所有磁盘写入,因此GUID会强制它不是简单地添加到表的末尾并在整个地方写入。