資料庫中直接儲存uuid的壞處:
完全『隨機』的字串,例如由md5()、sha1()、uuid()產生的。它們產生的每乙個新值都會被任意地儲存在很大的空間範圍內,
這會減慢insert及一些select查詢。
1)它們會減慢insert查詢,因為插入的值會被隨機地放入索引中。這會導致分頁、隨機磁碟訪問及聚集儲存引擎上的聚集索引碎片。
2)它們會減慢select查詢,因為邏輯上相鄰的行會分布在磁碟和記憶體中的各個地方。
3)隨機值導致快取對所有型別的查詢效能都很差,因為它們會使快取賴以工作的訪問區域性性失效。如果整個資料集都變得同樣"熱"的時候,
那麼把特定部分的資料快取到記憶體中就沒有任何的優勢了。並且如果工作集不能被裝入記憶體中,快取就會進行很多刷寫的工作,並且會導致很多快取未命中。
如果儲存uuid值,就應該移除其中的短橫線,更好的辦法是使用uhex()把uuid值轉化為16位元組的數字,並把它儲存在binary(16)列中。
(轉)UUID做主鍵,好還是不好?這是個問題。
以前對uuid的了解很少,只知道是128位整數 16位元組 的全域性唯一識別符號 universally unique identifier 剛才google了下,算是有了點深入的了解。uuid是指在一台機器上生成的數字,它保證對在同一時空中的所有機器都是唯一的。通常平台會提供生成uuid的api。...
獲取裝置UUID
我們經常需要獲取使用者裝置的唯一識別符號,一般來說都是使用的uuid,本文介紹簡單的獲取uuid的方法。一般來說都是通過uuid來獲取裝置的uuid的,雖然uuid也不是獨一無二的,但大多還是使用的這個來標識。要獲取uuid也很簡單,幾行 就可以了。我們在使用的時候,可以將uuid也儲存在keych...
UUID的演算法
在具體討論之前,本文先釐清uuid universally unique identifier 與guid globally unique identifier 的關係。在分布式 網路 單機環境下,為了能夠使用具有某種形式的id唯一標識系統中的任一元素,這樣的id可以不依賴中心認證自動生成,於是uu...