mysql建表必須使用主鍵嗎

晨夢~思雨發表於2020-12-04

mysql從5.5版本開始預設使用innodb引擎,innodb表是聚簇索引表,也就是說資料通過主鍵聚集( 主鍵下儲存該行的資料,索引指向主鍵值)

正是由於這種解構,如果後續對主鍵對應的值進行修改,就會導致索引節點的頻繁分裂,效能會下降非常厲害。因此推薦開發的同事們使用和業務沒有任何關聯的自增id來做主鍵(切記不要使用uuid來做主鍵),此外也可以考慮使用其他的方式來生產自增的ID,比如使用Twitter的snowflake演算法或者zk的DistributedAtomicLong來間接實現。使用自增主鍵而不是uuid做主鍵的優點主要有如下幾點:

a、佔用的資料量更小

b、資料順序遞增,不會導致索引節點的頻繁分裂

c、數字型別比字元型別效率更高

正確招式:使用自增id作為主鍵

相關文章