參考:
http://stackoverflow.com/questions/412341/how-should-i-store-guid-in-mysql-tables
通常用UUID做唯一標識,需要在數據庫中進行存儲。
UUID的格式
完全‘隨機'的字符串,例如由MD5()、SHA1()、UUID()產生的。它們產生的每一個新值都會被任意地保存在很大的空間范圍內,這會減慢INSERT及一些SELECT查詢。1)它們會減慢INSERT查詢,因為插入的值會被隨機地放入索引中。這會導致分頁、隨機磁盤訪問及聚集存儲引擎上的聚集索引碎片。2)它們會減慢SELECT查詢,因為邏輯上相鄰的行會分布在磁盤和內存中的各個地方。3)隨機值導致緩存對所有類型的查詢性能都很差,因為它們會使緩存賴以工作的訪問局部性失效。如果整個數據集都變得同樣“熱”的時候,那么把特定部分的數據緩存到內存中就沒有任何的優勢了。并且如果工作集不能被裝入內存中,緩存就會進行很多刷寫的工作,并且會導致很多緩存未命中。
如果保存UUID值,就應該移除其中的短橫線,更好的辦法是使用UHEX()把UUID值轉化為16字節的數字,并把它保存在BINARY(16)列中。
新聞熱點
疑難解答