偶然的機會,得知mysql主鍵的類型采用 varchar 存UUID 的查詢性能沒有int型做主鍵好。網上查詢大量資料,都是停留在理論上的,因此,自己寫了代碼進行實測,以下結果僅供參考,不具備權威性。 三個表的字段,除了主鍵ID 分別采用varchar,bigint 和自動增長bigint ...
不易於存儲:UUID太長, 字節 位,通常以 長度的字符串表示,很多場景不適用。 信息不安全:基於MAC地址生成UUID的算法可能會造成MAC地址泄露,這個漏洞曾被用於尋找梅麗莎病毒的制作者位置。 ID作為主鍵時在特定的環境會存在一些問題,比如做DB主鍵的場景下,UUID就非常不適用: MySQL官方有明確的建議主鍵要盡量越短越好 , 個字符長度的UUID不符合要求。 對MySQL索引不利:如果 ...
2020-09-17 16:34 0 712 推薦指數:
偶然的機會,得知mysql主鍵的類型采用 varchar 存UUID 的查詢性能沒有int型做主鍵好。網上查詢大量資料,都是停留在理論上的,因此,自己寫了代碼進行實測,以下結果僅供參考,不具備權威性。 三個表的字段,除了主鍵ID 分別采用varchar,bigint 和自動增長bigint ...
數據庫:mysql5.5 表類型:InnoDB 數據量:100W條 第一種情況: 主鍵采用uuid 32位。 運行查詢語句1:SELECT COUNT(id) FROM test_varchar; 運行查詢語句2:SELECT * FROM test_varchar ...
數據庫分庫分表思路 - butterfly100 - 博客園 (cnblogs.com) 數據庫分庫分表思路 一. 數據切分 關系型數據庫本身比較容易成為系統瓶頸, ...
使用Guid做主鍵和int做主鍵性能比較 在數據庫的設計中我們常常用Guid或int來做主鍵,根據所學的知識一直感覺int做主鍵效率要高,但沒有做仔細的測試無法 說明道理。碰巧今天在數據庫的優化過程中,遇到此問題,於是做了一下測試。 測試環境: 台式電腦 Pentiun(R ...
在一個分布式環境中,我們習慣使用GUID做主鍵,來保證全局唯一,然后,GUID做主鍵真的合適嗎? 其實GUID做主鍵本身沒有問題,微軟的很多項目自帶DB都是使用GUID做主鍵的,顯然,這樣做是沒有問題的。然而,SQL Server默認會將主鍵設置為聚集索引,使用GUID做聚集索引就有問題 ...
我們公司的數據庫全部是使用GUID做主鍵的,很多人習慣使用int做主鍵。所以呢,這里總結一下,將兩種數據類型做主鍵進行一個比較。 使用INT做主鍵的優點: 1、需要很小的數據存儲空間,僅僅需要4 byte 。 2、insert和update操作時使用INT的性能比GUID好 ...
場景: 產品表數據量較大想用Guid做表的主鍵,並在此字段上建立聚簇索引。 因為Guid是隨機生成的,生成的值大小是不確定的,每次生成的數可能很大,也可能很小。這樣會影響插入的效率 1.NEWSEQUENTIALID和newid()的區別 NEWSEQUENTIALID() 和 NEWID ...
修改結構,將主鍵UUID改為主鍵自增長 --創建備份表結構 -- 插入備份數據 -- 刪除原表數據 -- 修改主鍵類型,將varchar改為bigInt,並設置為自增長 -- 將備份數據出主鍵外的所有數據插入修改后的表 ...