Mysql

UserID 的最佳標識符是什麼?64 位整數、UUID V5 還是 64 字元 SHA256 UID?

  • August 30, 2020

我希望將來證明我的應用程序。最好使用的標識符類型是什麼?

我正在考慮:

  1. 64 位整數
  2. UUID
  3. 64 個字元的 SHA256

我不是在開發分佈式系統,所以有必要使用 UUID 嗎?

INTEGER另外,聯接與聯接有多好VARCHAR

最後,將使用者名(唯一)和消息數據儲存在同一個 MySQL 表中是否比儲存使用者 ID 更好?

使用整數。這是最簡單和最有效的方式(尤其是對於 InnoDB)。

那是

  • 不要使用雜湊或 UUID 或 varchars 代替 int
  • 當你有外鍵時不要使用自然鍵

原因?

  • varchar 比較需要整理 + 案例測試
  • InnoDB 中的索引架構偏愛整數欄位(理想的聚集索引是窄的、數字的、單調遞增的)
  • 雜湊和 GUID 和 varchar 導致碎片
  • 不使用整數時更寬的數據 + 索引行
  • 64 個字元需要 64/66 個字節來儲存。64 位輸入需要 8 個字節

其他觀察:

  • 你需要64位數字嗎?

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