0
我有一個有趣的問題:聚簇索引和唯一索引有什麼區別?什麼更好,更快,爲什麼?集羣或唯一索引MySql DB?
我有一個有趣的問題:聚簇索引和唯一索引有什麼區別?什麼更好,更快,爲什麼?集羣或唯一索引MySql DB?
隨着MySQL的InnoDB引擎,你會得到普通指數的3種選擇:
PRIMARY KEY
- 「集羣」 數據和 「獨一無二」。 (經常AUTO_INCREMENT
)UNIQUE
- 唯一的,不聚集。INDEX
- 非唯一,不聚類。所有的實現都是BTrees。聚集意味着數據在葉節點中。
注意事項:
PRIMARY KEY
。PRIMARY KEY
或UNIQUE
的列。UNIQUE
或INDEX
)通過PRIMARY KEY
查找數據。推論1:PK找到一排更快。推論2:笨重的(例如,VARCHAR(255)
)PK是每個輔助密鑰的額外負擔。INSERT
必須立即檢查PRIMARY KEY
和任何UNIQUE
密鑰重複,但它可以延遲更新其他輔助密鑰。 (這可能有插入過程對性能的影響。)從這些細節,有時可以將答案演繹您的問題。
(警告:不是InnoDB的其他引擎有一些不同的特點。)
你讀過例如[聚簇和非聚簇索引實際上意味着什麼](http://stackoverflow.com/questions/1251636/what-do-clustered-and-non-clustered-index-actually-mean)或[mysql文檔](https ://dev.mysql.com/doc/refman/5.7/en/innodb-index-types.html)?如果不是,現在就做。如果是的話:沒有「更好」(特別是沒有「什麼」)。但你現在應該知道這一點。如果你有更具體的問題,你應該問一個更具體的問題。 – Solarflare