SQL:存储guids

Dus*_*vis 4 sql-server sql-server-2008

我现在要求必须将列添加到包含唯一ID(guid)的表中.此ID用于匹配不同表和数据库中的记录,但不会有FK约束.将guid存储为varchar(32)或uniqueidentifier类型会更好吗?

将使用此列进行连接,但不会定期进行连接.这个ID不是PK.我在询问存储和性能方面.

Jac*_*tti 21

如果是GUID,请将其存储为 uniqueidentifier

  • @ Titan2782:一个`UNIQUEIDENTIFIER`需要16个字节来存储 - 一个`VARCHAR(32)`需要32个字节的数据(根本不是真正的可变长度),它需要在某处存储实际长度,加上它是一个可变长度字段(实际上不需要),这也会增加SQL Server存储的开销.因此,使用`UNIQUEIDENTIFIER`不仅是"自然"的选择(将"GUID"存储为"GUID") - 就所需的磁盘空间而言,它也更"经济". (7认同)
  • 同意.如果您知道它是什么,则无需将其存储为其他内容. (5认同)