Guid与id区别

1、产生Guid的方法数据库

一、SqlServer中使用系统自带的NEWID函数: select NEWID()ide

二、C#中,使用Guid类型的NewGuid方法:函数

      Guid gid;
              gid = Guid.NewGuid();
              Console.WriteLine(gid);
              Console.WriteLine(Guid.NewGuid());post

2、Guid与int自动增长做主键的优缺点ui

int自动增字段的优势:占用空间小、无需开发人员干预、易读;对象

  缺点:效率低,数据导入导出的时候很痛苦。blog

Guid的优势:效率高,数据导入导出方便;缺点是占用空间大,不易读。索引

业界主流倾向使用Guid做主键。由于主键通常不是给外人看的,并且如今硬盘空间愈来愈大,不在意这一点空间。接口

========================================开发

优势是: 同 IDENTITY 列相比,uniqueidentifier 列能够经过 NewID() 函数提早得知新增长的行 ID,为应用程序的后续处理提供了很大方便。 便于数据库移植,其它数据库中并不必定具备 IDENTITY 列,而 Guid 列能够做为字符型列转换到其它数据库中,同时将应用程序中产生的 GUID 值存入数据库,它不会对原有数据带来影响。 便于数据库初始化,若是应用程序要加载一些初始数据, IDENTITY 列的处理方式就比较麻烦,而uniqueidentifier 列则无需任何处理,直接用 T-SQL 加载便可。 便于对某些对象或常量进行永久标识,如类的 ClassID,对象的实例标识,UDDI 中的联系人、服务接口、tModel标识定义等。 缺点是: GUID 值较长,不容易记忆和输入,并且这个值是随机、无顺序的。 GUID 的值有 16 个字节,与其它那些诸如 4 字节的整数相比要相对大一些。这意味着若是在数据库中使用 uniqueidentifier 键,可能会带来两方面的消极影响:存储空间增大;索引时间较慢。

相关文章
相关标签/搜索