索引的分類 面試準備,索引大部分知識

2021-10-09 18:24:35 字數 1637 閱讀 8776

io讀取方式:順序讀寫 和 隨機讀寫

順序讀寫:速度比較快,區域性性原理:發現程式和資料的訪問都有聚集成群的傾向,在乙個時間段內,僅使用其中一小部分(空間區域性性),或者最近訪問過的程式**和資料,很快又被訪問的可能性很大(時間區域性性)。

磁碟預讀(預讀的長度一般為頁(page)的整數倍)

頁是儲存器的邏輯塊,作業系統往往將主存和磁碟儲存區分割為連續的大小相等的塊,每乙個儲存塊稱為一頁(頁大小通常為4k), 主存和磁碟以頁為單位交換資料

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

索引儲存在檔案系統中

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

索引檔案的結構:

hash:陣列加鍊表的資料結構。

缺點:1、利用hash儲存的話需要將所有的資料檔案新增到記憶體,比較消耗記憶體空間

2、等值查詢速度快,但是範圍查詢用不了

二叉樹、紅黑樹:

缺點:都會因為樹的深度過深而造成io次數變多,影響資料讀取的效率

b樹:

特點:

1、所有的鍵值分布在整顆樹中

2、搜尋有可能在非葉子節點結束,在關鍵字全集內做一次查詢,效能逼近二分查詢

3、每個節點最多擁有m個子樹

4、根節點至少有兩個子樹

5、分支節點至少擁有m/2顆子樹

6、所有葉子節點都在同一層,每個節點最多可以有m-1個key,並且以公升序排列

缺點:每乙個磁碟塊的空間是有限制的,比如是4k,這個時候,有可能因為data的資料很大,而導致樹的深度加深

三次io就可以取到值

mysql索引的五種型別:主鍵索引、唯一索引、普通索引和全文索引、組合索引

主鍵索引:主鍵是一種唯一性索引,但它必須指定為primary key,每個表只能有乙個主鍵

唯一索引:索引列的所有值都只可能出現一次,即必須唯一,值可以為空

普通索引:基本的索引型別,值可以為空,沒有唯一性的限制、

這三行知識,必須得說得出來

聚簇索引:innodb 的資料檔案只有乙個,索引和資料放在乙個檔案

非聚簇索引:mylsam的索引分為兩個檔案,索引和資料是分開的

索引的分類

注意 索引是在儲存引擎中實現的,也就是說不同的儲存引擎,會使用不同的索引。myisam和innodb儲存引擎 只支援btree索引,也就是說預設使用btree,不能夠更換。memory heap儲存引擎 支援hash和btree索引。1 索引我們分為四類來講單列索引 普通索引,唯一索引,主鍵索引 組...

索引的分類 B Tree索引和Hash索引

索引是儲存引擎用來快速查詢記錄的一種資料結構,按照實現的方式有不同的種類,想b tree索引,hash索引,空間資料索引和全文索引等。下面主要說一下b tree索引和hash索引。人們在談論索引的時候如果沒有特別說明,一般指的是b tree索引。b tree索引是使用b tree資料結構來儲存索引的...

索引的分類 B Tree索引和Hash索引

索引是儲存引擎用來快速查詢記錄的一種資料結構,按照實現的方式有不同的種類,想b tree索引,hash索引,空間資料索引和全文索引等。下面主要說一下b tree索引和hash索引。人們在談論索引的時候如果沒有特別說明,一般指的是b tree索引。b tree索引是使用b tree資料結構來儲存索引的...