1. 程式人生 > >mysql的四種索引與InnoDB的四種索引區別

mysql的四種索引與InnoDB的四種索引區別

mysql引擎的四種索引&&表的四種索引區別

mysql引擎的四種索引與表的四種索引是不同的,千萬不要混淆了

  1. 引擎的四種索引:B+樹引、R樹引、雜湊索引、全文索引
  2. 表的四種索引:主鍵索引、唯一索引、普通索引、全文索引

引擎的索引支援

* Myisam InnoDB BDB Memory Archive
全文索引 Y Y
B+樹索引 Y Y Y Y
雜湊索引 Y Y
R樹索引 Y Y
索引快取 Y Y Y

表的索引

* Myisam InnoDB BDB Memory Archive
主鍵索引 Y Y Y Y
唯一索引 Y Y Y Y
普通索引 Y Y Y Y
全文索引 Y Y Y


誤區1:二叉樹索引

注意:mysql不支援二叉樹索引,B樹、B+樹不是二叉樹。
在這裡插入圖片描述


在這裡插入圖片描述


注意:如果二叉樹插入的資料一次比一次大呢?比如ID自增?看下圖

在這裡插入圖片描述

總結:發現二叉樹就會生成一萬多節,效能不一定能提示多少



誤區2:InnoDB不支援雜湊索引

請看mysql官方文件在這裡插入圖片描述
總結:InnoDB不支援hash索引,但又給出了一個特殊的解釋。mysqlInnoDB儲存引擎 是支援hash索引的,不過,我們必須啟用,hash索引的建立由InnoDB儲存引擎引擎自動優化建立,我們干預不了。



誤區3:索引指向資料所在的磁碟地址

在這裡插入圖片描述
總結:Innodb的索引是指向主鍵索引,主鍵索引指向檔案地址; MyISMA的索引是直接指向檔案地址;