1. 索引是什么?
索引是一種特殊的文件(InnoDB數據表上的索引是表空間的一個組成部分),它們包含著對數據表里所有記錄的引用指針。
索引是一種數據結構。數據庫索引,是數據庫管理系統中一個排序的數據結構,以協助快速查詢、更新數據庫表中數據。索引的實現通常使用B樹及其變種B+樹。更通俗的說,索引就相當于目錄。為了方便查找書中的內容,通過對內容建立索引形成目錄。而且索引是一個文件,它是要占據物理空間的。
MySQL索引的建立對于MySQL的高效運行是很重要的,索引可以大大提高MySQL的檢索速度。比如我們在查字典的時候,前面都有檢索的拼音和偏旁、筆畫等,然后找到對應字典頁碼,這樣然后就打開字典的頁數就可以知道我們要搜索的某一個key的全部值的信息了。
2. 索引有哪些優缺點?
索引的優點
可以大大加快數據的檢索速度,這也是創建索引的最主要的原因。
通過使用索引,可以在查詢的過程中,使用優化隱藏器,提高系統的性能。
索引的缺點
時間方面:創建索引和維護索引要耗費時間,具體地,當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,會降低增/改/刪的執行效率;
空間方面:索引需要占物理空間。
3. MySQL有哪幾種索引類型?
1、從存儲結構上來劃分:BTree索引(B-Tree或B+Tree索引),Hash索引,full-index全文索引,R-Tree索引。這里所描述的是索引存儲時保存的形式,
2、從應用層次來分:普通索引,唯一索引,復合索引。
普通索引:即一個索引只包含單個列,一個表可以有多個單列索引
唯一索引:索引列的值必須唯一,但允許有空值
復合索引:多列值組成一個索引,專門用于組合搜索,其效率大于索引合并
聚簇索引(聚集索引):并不是一種單獨的索引類型,而是一種數據存儲方式。具體細節取決于不同的實現,InnoDB的聚簇索引其實就是在同一個結構中保存了B-Tree索引(技術上來說是B+Tree)和數據行。
非聚簇索引:不是聚簇索引,就是非聚簇索引
3、根據中數據的物理順序與鍵值的邏輯(索引)順序關系:聚集索引,非聚集索引。
-
數據庫
+關注
關注
7文章
3765瀏覽量
64274 -
數據結構
+關注
關注
3文章
573瀏覽量
40092 -
MySQL
+關注
關注
1文章
802瀏覽量
26443 -
索引
+關注
關注
0文章
59瀏覽量
10462
發布評論請先 登錄
相關推薦
評論