Sql-Server

什麼是最有效的 UUID 列類型

  • June 30, 2014

對於儲存 128 位 UUID,有多種儲存選項:

  1. 一個字節$$ 16 $$柱子
  2. 兩個 bigint/long(64 位)列
  3. 一個 CHAR(36) 列 - 32 個十六進制數字 + 4 個破折號。
  4. 一個 UUID 數據庫特定列,如果 db 支持它

從索引的角度來看,哪些是最有效的?如果數據庫不支持專用的 uuid 類型,那麼 1、2、3 中的哪一個是最佳候選者?

專用uuid類型是 PostgreSQL 的最佳選擇。很難用其他數據庫說 - 有人隱含一種uuid儲存效率低於簡單字節類型的類型並非不可能。

同樣在 PostgreSQL 中,bytea如果您沒有該uuid類型,這將是一種儲存 UUID 的合理方法。對於其他數據庫,這取決於它們如何儲存二進制數據。

在可能的情況下,我強烈避免使用帶有破折號的十六進制。比較、排序和儲存的效率較低。

所以真的,“不是(2)或(3)”。曾經。在支持的情況下使用 (4),否則使用 (1)。

引用自:https://dba.stackexchange.com/questions/69254