索引按照數(shù)據(jù)結構來說主要包含B+樹和Hash索引断楷。
假設我們有張表锨匆,結構如下:
create table user(
id int(11) not null,
age int(11) not null,
primary key(id), key(age)
);
B+樹是左?右?的順序存儲結構,節(jié)點只包含id索引列冬筒,?葉?節(jié)點包含索引列和數(shù)據(jù)恐锣,這種數(shù)據(jù)和索引在?起存儲的索引?式叫做聚簇索引,?張表只能有?個聚簇索引舞痰。假設沒有定義主鍵土榴,InnoDB會選擇?個唯?的?空索引代替,如果沒有的話則會隱式定義?個主鍵作為聚簇索引响牛。
這是主鍵聚簇索引存儲的結構玷禽,那么?聚簇索引的結構是什么樣?呢赫段??聚簇索引(?級索引)保存的是主鍵id值,這?點和myisam保存的是數(shù)據(jù)地址是不同的矢赁。
最終瑞佩,我們?張圖看看InnoDB和Myisam聚簇和?聚簇索引的區(qū)別