UUID 和 GUID 的区别

转载 2012年05月18日 14:40:48

UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长。比如:550e8400-e29b-41d4-a716-446655440000

http://gohands.blogbus.com/logs/147479174.html

GUID 是微软对UUID这个标准的实现。UUID是由开放软件基金会(OSF)定义的。UUID还有其它各种实现,不止GUID一种。比如我们这里在Java中用到的。

http://baike.baidu.com/view/1052579.htm

COMB(combine)型是数据库特有的一种设计思想,可以理解为一种改进的GUID,它通过组合GUID和系统时间,以使其在索引和检索事有更优的性能。
http://blog.csdn.net/happyflystone/article/details/1903854

数据库中没有COMB类型,它是Jimmy Nilsson在他的“The Cost of GUIDs as Primary Keys”一文中设计出来的。

COMB数据类型的基本设计思路是这样的:既然UniqueIdentifier数据因毫无规律可言造成索引效率低下,影响了系统的性能,那么我们能不能通过组合的方式,保留UniqueIdentifier的前10个字节,用后6个字节表示GUID生成的时间(DateTime),这样我们将时间信息与UniqueIdentifier组合起来,在保留UniqueIdentifier的唯一性的同时增加了有序性,以此来提高索引效率。

http://hi.baidu.com/%CA%AB%D5%B9/blog/item/407fd23f77d5eacf7c1e7122.html

 

Android 使用代码:

JDK1.5开始支持UUID,Android也支持UUID http://developer.android.com/reference/java/util/UUID.html

那么生成UUID变成了一件简单的事,因为JDK实现了UUID: java.util.UUID,直接调用即可.
UUID uuid  =  UUID.randomUUID();
String s = UUID.randomUUID().toString();//用来生成数据库的主键id非常不错。 

import java.util.UUID;
UUID uid = UUID.randomUUID();

 

SQLIte 使用例子

// 插入数据
UUID locationID = UUID.randomUUID();
ContentValues initialValues = new ContentValues();
initialValues.put("rowid", locationID.toString());
//...other stuff...// 
db.insert(DATABASE_TABLE_LOCATIONS, null, initialValues);
// 搜索
Cursor c =
db.query(true, DATABASE_TABLE, new String[] {
                "rowid", "stuff", "things"}, "rowid='" + rowId + "'",
null, null, null, null);
 

以上代码出自: http://groups.google.com/group/android-developers/browse_thread/thread/4a6c40702107fa16

 

SQL 语句

CREATE TABLE Users
(
   UserGuid TEXT PRIMARY KEY NOT NULL,
   FirstName TEXT,
   LastName TEXT
)
INSERT INTO Users (UserGuid, FirstName, LastName)
VALUES ('e7bf9773-8231-44af-8d53-e624f0433943', 'Bobby', 'Bobston')
DELETE FROM Users WHERE UserGuid = 'e7bf9773-8231-44af-8d53-e624f0433943'

以上语句来源: http://zh-cn.w3support.net/index.php?db=so&id=1055848

 

MYSQL

在mysql中有函数生成guid:SELECT UUID();

一般我们用CHAR(36)或者BINARY(36)类型来存储uuid。

 

PHP 使用 UUID

PHP下生成GUID

http://www.cnblogs.com/ovliverlin/archive/2008/08/27/932444.html

PHP function to generate v4 UUID

http://stackoverflow.com/questions/2040240/php-function-to-generate-v4-uuid


UUID 、GUID、COMB 的区别与联系

UUID是一个标准、GUID是UUID的实现、COMB是GUID的改进
  • doris_d
  • doris_d
  • 2015年07月08日 11:02
  • 2148

uuid/guid 通用唯一识别码 (Universally Unique Identifier)

UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software Foundation, OS...
  • zhoubl668
  • zhoubl668
  • 2011年01月21日 13:16
  • 5768

UUID 和 GUID 的区别

UUID是一个由4个连字号(-)将32个字节长的字符串分隔后生成的字符串,总共36个字节长。比如:550e8400-e29b-41d4-a716-446655440000 http://gohand...
  • forlong401
  • forlong401
  • 2012年05月18日 14:40
  • 35209

GUID和UUID、CLSID、IID 区别及联系

原文摘抄自:GUID和UUID、CLSID、IID 区别及联系 当初微软设计com规范的时候,有两种选择来保证用户的设计的com组件可以全球唯一: 第一种是采用和Internet地址一样的管理方式,...
  • zslefour
  • zslefour
  • 2014年03月09日 11:04
  • 2452

Java 产生 GUID / UUID

Java 产生 GUID,利用导入类 java.util.UUID,生成的GUID为一串32位字符组成的128位数据,可以做到全球唯一。 产生GUID相当容易,以下是一次生成5条GUID代码的演示。 ...
  • joyous
  • joyous
  • 2012年02月05日 23:40
  • 29587

UUID和GUID

通用惟一标识符(UUID)是128位比特的数字,用来惟一地标识因特网上的某些对象或者实体。 A Universally Unique Identifier is an identif...
  • ljz2009y
  • ljz2009y
  • 2014年04月18日 20:34
  • 3482

GUID UUID 生成

GUID 和 UUID 是一样的,表示全球唯一标识码。 如果要获取一个GUID,如果你非常了解GUID算法,可以自己用C++(当然可以是任何语言)写一个算法,这里我介绍两种简方法; 方法一...
  • chinabinlang
  • chinabinlang
  • 2014年02月14日 15:21
  • 2451

UUID、GUID、CLSID

一、UUID   UUID含义是通用唯一识别码 (Universally Unique Identifier),这 是一个软件建构的标准,也是被开源软件基金会 (Open Software...
  • jolin678
  • jolin678
  • 2016年07月18日 23:55
  • 974

利用GUID/UUID生成token及验证token的正确性

UUID/GUID生成token 验证token
  • sureSand
  • sureSand
  • 2016年10月18日 18:27
  • 6565

Linux & Windows上生成UUID/GUID

Linux & Windows上生成UUID/GUID 请见如下相关文章: boost uuid uuid in linux vs uuid in window[Parser] GUID是...
  • ghlfllz
  • ghlfllz
  • 2013年12月04日 23:05
  • 10530
收藏助手
不良信息举报
您举报文章:UUID 和 GUID 的区别
举报原因:
原因补充:

(最多只允许输入30个字)