首先你要知道;
無論是Myisam和Innodb引擎,如果在建表的時候沒有顯示的定義一行主鍵列的話,他內部都會自動創建一個隱藏的主鍵索引;
主鍵索引以外的索引假設稱為次索引;首先Myisam和Innodb兩個都是默認采用的btree索引,可以腦補一顆二叉樹;
myisam引擎的數據在物理磁盤上是按照順序存儲的,而innodb引擎的表數據是隨機分布的;
myisam的主鍵索引的葉子節點只存放數據在物理磁盤上的指針,其他次索引也是一樣的;
innodb的主鍵索引的葉子節點下面直接存放數據,其他次索引的葉子節點指向主鍵id;
由此可以挖掘出一個問題,就是如果Innodb有大數據列,比如 varchar(300),這種比較多的話,那么排序的時候用主鍵id排序會比較慢,因為