Sql-Server
什麼是最有效的 UUID 列類型
對於儲存 128 位 UUID,有多種儲存選項:
- 一個字節$$ 16 $$柱子
- 兩個 bigint/long(64 位)列
- 一個 CHAR(36) 列 - 32 個十六進制數字 + 4 個破折號。
- 一個 UUID 數據庫特定列,如果 db 支持它
從索引的角度來看,哪些是最有效的?如果數據庫不支持專用的 uuid 類型,那麼 1、2、3 中的哪一個是最佳候選者?
專用
uuid
類型是 PostgreSQL 的最佳選擇。很難用其他數據庫說 - 有人隱含一種uuid
儲存效率低於簡單字節類型的類型並非不可能。同樣在 PostgreSQL 中,
bytea
如果您沒有該uuid
類型,這將是一種儲存 UUID 的合理方法。對於其他數據庫,這取決於它們如何儲存二進制數據。在可能的情況下,我強烈避免使用帶有破折號的十六進制。比較、排序和儲存的效率較低。
所以真的,“不是(2)或(3)”。曾經。在支持的情況下使用 (4),否則使用 (1)。