全域唯一識別碼

全域唯一識別碼

GUID已經廣泛使用於資料庫表格的主鍵。由於主鍵需要用作索引,於是就產生了一個效能問題:當主鍵足夠隨機時,新的記錄就必須插入到原有的索引中間,而不能僅僅排在最後。

為緩解這個問題並仍然提供足夠的隨機程度以避免GUID的重複,人們就創造了一些新的演算法來生成序列化的GUID。

2002年8月,吉米尼爾森(Jimmy Nilsson)給出了第一種方法,[4]並稱之為「COMB」(combined guid/timestamp,意思是:組合GUID/時間戳)。他將GUID中資料4的最後6位元組用系統時間的最低位替換。經測試,這對隨機性的影響很小,但是有一個副作用即是其建立的時間可以從GUID中輕鬆還原。

自從Microsoft SQL Server 2005版開始,微軟在Transact-SQL中加入了一個新函式,叫做NEWSEQUENTIALID()[5],用來生成主鍵增大的GUID,但一旦伺服器重新啟動,其再次生成的GUID可能反而變小(但仍然保持唯一)。這在很大程度上提高了索引的效能,但並不能保證所生成的GUID一直增大。這個函式產生的GUID很簡單就可以預測,因此不適合用於安全目的。

2006年,一些程式設計師發現,在一些平台上的Oracle軟體中,SYS_GUID函式能返回序列化的GUID。但這個實際上是一個BUG導致的。[6].

相关推荐

男篮世界杯:“直通”名额揭晓 落选赛参赛队伍产生
365bet官网体育娱乐

男篮世界杯:“直通”名额揭晓 落选赛参赛队伍产生

📅 07-02 👁️ 8253
当前常见的计算机类型有哪些
365bet官网体育娱乐

当前常见的计算机类型有哪些

📅 07-08 👁️ 6812
血比人还多:倩女灵兽之高级忠心血宠秀场
365bet体育足球

血比人还多:倩女灵兽之高级忠心血宠秀场

📅 07-17 👁️ 8590
游戏中如何关闭ip归属地
365bet体育足球

游戏中如何关闭ip归属地

📅 07-13 👁️ 2763
门派坐骑-天龙
bt365官方网注册

门派坐骑-天龙

📅 07-19 👁️ 6442
3WPS如何启用宏
bt365官方网注册

3WPS如何启用宏

📅 07-07 👁️ 1489