mysql的四種索引與InnoDB的四種索引區別
阿新 • • 發佈:2018-11-26
mysql引擎的四種索引&&表的四種索引區別
mysql引擎的四種索引與表的四種索引是不同的,千萬不要混淆了
- 引擎的四種索引:B+樹引、R樹引、雜湊索引、全文索引
- 表的四種索引:主鍵索引、唯一索引、普通索引、全文索引
引擎的索引支援
* | 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的索引是直接指向檔案地址;