1. 程式人生 > 其它 >關於Mysql索引的一些簡述

關於Mysql索引的一些簡述

資料結構學習網站:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html

一、索引是什麼?

索引是幫助mysql高效獲取資料的排好序的資料結構

1.二叉樹:樹的深度過深而造成io次數變多

2.Hash:不支援範圍查詢和模糊查詢

3.B-Tree:所有的鍵值和具體的data分佈在整顆樹中

4.B+Tree:data只儲存在葉子節點中,非葉子節點可存放更多索引。葉子節點包含所有索引欄位,且用指標連線。

二、索引的檔案儲存形式與儲存引擎有關

1.Myisam:索引檔案與資料檔案分離,非聚集索引

●*.frm:表結構檔案

●*.MYD:表資料檔案

●*.MYI:表索引的資料樹檔案

2.Innodb:聚集索引+非聚集索引

●*.frm:表結構檔案

●*.ibd:索引檔案和資料檔案

三、隱藏欄位

InnoDB表必須有主鍵,並且推薦使用整型的自增主鍵?

設計如此,沒有主鍵,則唯一索引;沒有唯一索引,則mysql自建主鍵。整型的排序效能好。自增的插入效率高。

四、聯合索引

最左優先原則: