Guid和id的区别

一、产生Guid的方法

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

2、C#中,使用Guid类型的NewGuid方法:

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

二、Guid与int自动增加作主键的优缺点

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

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

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

业界主流倾向使用Guid作主键。因为主键一般不是给外人看的,而且现在硬盘空间越来越大,不在乎这一点空间。

========================================

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

Guid和id的区别

时间: 2024-11-13 06:40:55

Guid和id的区别的相关文章

instance和id的区别

instancetype和id的区别,objective-c instancetype   clang 3.5 提供的关键字,  表示:某方法返回未知类型的OC对象 都知道id任意类型关键字,为什么还会出现一个新的关键字? 返回关联类型 1.类方法中,alloc, new开头 2.实例方法中 autorelease,init,retain,self开头 会返回方法所在类的类型的对象,即关联返回类型的方法. 这些方法的返回结果以方法所在的类为类型. for example @interface N

$arr['id'],$arr[id]的区别

说白了区别就是当不加''的时候我们首先会考虑的是这个id是不是一个常量 例如: define("abc",'ABC'); 那么实际上$arr[id] = $arr['ABC']; 所以在这个过程中就会多加了一步操作.那么引申一个问题就是 在$arr取值时尽量使用单引号就会比直接写或者加双引号就会更快一些. $arr['id'],$arr[id]的区别

instancetype和id的区别

一.什么是instancetype instancetype是clang 3.5开始,clang提供的一个关键字,表示某个方法返回的未知类型的Objective-C对象.我们都知道未知类型的的对象可以用id关键字表示,那为什么还会再有一个instancetype呢? 二.关联返回类型(related result types) 根据Cocoa的命名规则,满足下述规则的方法: 1.类方法中,以alloc或new开头 2.实例方法中,以autorelease,init,retain或self开头 会

jQuery的$(‘#id’)与document.getElementByID('id')的区别

用jQuery选择的包装集返回的是jQuery对象,用document.getElementByID返回的是DOM对象. jQuery对象 --> DOM对象 /* Convert a jQuery object to a DOM object.*/var jquery = $('#id');alert(jquery.html()); var dom = jquery[0];// or var dom = jquery.get(0);alert(dom.innerHTML); DOM对象 -->

Document.getElementById 与 $('#id')的区别

一直认为jquery中的$("#id")和document.getElementByIdx_x("id")得到的效果是一样的,今天才发现并不是这么一回事,通过测试得到: alert($("#box"))得到的是[object Object] alert(document.getElementById("box"))得到的是[object HTMLDivElement] alert($("#box")[0])

Windows中句柄和ID的区别

VC++菜单的句柄也可以理解成菜单的识别符(ID). 但如果指菜单项的ID, 那可能又是一回事了.按我的理解:  1. 句柄是程序运行中系统为其分配的,菜单项ID是编程者自己定义指定的.一般可在资源文件中定义也可在动态创建菜单时指定,程序中引用.  2. 菜单的句柄是属于菜单的,菜单项ID是属于菜单中某一个菜单项的.编程者通过菜单的句柄访问菜单,通过ID进行菜单项识别并进行消息处理.  3. 菜单的句柄类型是HMENU, 菜单项ID的类型是UINT(无符号整型).当然这两种类型本质上并无差别,但

iOS instancetype和id的区别

区别: 1>instancetype在类型表示上,跟id一样,可以表示任何对象类型 2>instancetype只能用在返回值类型上,不能像id一样用在参数类型上 3>instancetype比id多一个好处:编译器会检测instancetype的真实类型 第3点的解释: 在下面这种情况下 // Person.m文件里 + (id)person{ return [[self alloc] init]; } // mainViewController.m,下面这行代码,用字符串类型的指针指

Exjt itemid 与id的区别

Extjs 中id与itemId的区别 分类: extjs42014-02-20 10:28 349人阅读 评论(0) 收藏 举报 为了方便表示或是指定一个组件的名称,我们通常会使用id或者itemId进行标识命名.(推荐尽量使用itemId,这样可以减少页面唯一标识而产生的冲突) id:       id是作为整个页面的Component的唯一标识,这也意味着在整个页面中只允许有唯一一个名称的id,同时这里的Component的id也将变为element中的id,所以如果出现了两个,页面将会出

jquery中的$("#id")与document.getElementById("id")的区别

以前一直认为jquery中的$("#id")和document.getElementByIdx_x("id")得到的效果是一样的,今天做特效的时候才发现并不是这么一回事,通过测试得到: 1.alert($("#div"))得到的是[object Object] 2.alert(document.getElementById("div"))得到的是[object HTMLDivElement] 3.alert($("#