[英]Cluster Primary Key in MySQL InnoDB
我們有一個帶有InnoDB表的MySQL數據庫,該表包含兩個整數字段,假設A
和B
現在假設我們使用索引A和B創建一個聚集的主鍵 。每次填充A,B對時,數據庫中都會有一個不同的索引,因此
我想知道情況A=123, B=456
是否會生成與A=456, B=123
相同的索引(因此發生沖突)。 如果答案是否定的(我猜想),MySQL如何結合這些字段以獲得唯一索引? 為了生成唯一索引,由於上述原因,總和A+B
不好,乘積A*B
將浪費變量中的大量空間,而且僅當A或B為零時將失敗,那么MySQL使用的算法是什么(或任何其他DB)以實現此結果?
MySQL索引保留列順序,並分別存儲每個列的值。
您可以認為它就像電話簿一樣。 電話簿就像是兩列的索引:姓,然后名。
在電話簿中,他們不會將名稱加在一起。 它們存儲兩者,並以逗號分隔。 因此,“ Thomas Jay”與“ Jay Thomas”是不同的條目。 顯然,它們是單獨的字段。
在多列索引中相同。 列的位置很重要。 它們不會加在一起或相乘或其他任何東西。
PS:您對“聚集”的使用有些混亂,因為聚集索引在數據庫中已經具有不同的含義。 這意味着表以索引順序存儲。 當您指的是具有多個列的索引時,我建議使用“復合索引”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.