UUID 和 GUID 的區別

weixin_34391854發表於2011-10-03

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

相關文章