innodb為什么二級索引是非聚簇?
(1)InnoDB的主鍵采用聚簇索引存儲,使用的是B+Tree作為索引結(jié)構(gòu),但是葉子節(jié)點存儲的是索引值和數(shù)據(jù)本身(注意和MyISAM的不同)。
(2)InnoDB的二級索引不使用聚蔟索引,葉子節(jié)點存儲的是KEY字段加主鍵值。因此,通過二級索引查詢首先查到是主鍵值,然后InnoDB再根據(jù)查到的主鍵值通過主鍵索引找到相應(yīng)的數(shù)據(jù)塊。
(3)MyISAM的主鍵索引和二級索引葉子節(jié)點存放的都是列值與行號的組合,葉子節(jié)點中保存的是數(shù)據(jù)的物理地址
(4)MyISAM引擎使用B+Tree作為索引結(jié)構(gòu),葉節(jié)點的data域存放的是數(shù)據(jù)記錄的地址。