在使用InnoDB作為存儲引擎時幔睬,如果沒有特殊需要粤攒,請使用一個與業(yè)務(wù)無關(guān)的自增字段作為主鍵,而且這個字段長度不宜過大尖坤。
為什么稳懒?
因為InnoDB使用聚集索引,數(shù)據(jù)記錄本身存放在主索引(B+樹)的葉子結(jié)點上慢味,這就要求同一個葉子結(jié)點(大小為一個內(nèi)存頁或磁盤頁)的數(shù)據(jù)記錄按主鍵順序存放场梆,每當(dāng)一條新的記錄插入時,mysql會根據(jù)其主鍵將其插入適當(dāng)?shù)墓?jié)點和位置纯路,如果頁面達到裝載因子(InnoDB默認為15/16)或油,則開辟一個新的頁(節(jié)點)。如果使用自增主鍵驰唬,那么每次插入新的記錄顶岸,記錄就會按順序插入到當(dāng)前節(jié)點的下一個位置。這樣就會形成一個緊湊的索引結(jié)構(gòu)叫编,每次插入不需要移動已有數(shù)據(jù)辖佣,因此效率很高。