久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MySQL索引的底層實現原理是什么

140次閱讀
沒有評論

共計 1069 個字符,預計需要花費 3 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章主要介紹 MySQL 索引的底層實現原理是什么,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

MySQL 索引的底層實現原理

1、Hash 索引

2、BTree 索引和 B +Tree 索引

3、全文索引

(1)BTree 索引

(2)B+Tree 索引

(3)B+Tree 對比 BTree 優點:

一、前言

二、索引類型

一、前言

MySQL 支持諸多存儲引擎,而各種存儲引擎對索引的支持也各有不同,因此 MySQL 數據庫支持多種索引類型,如 BTree 索引,B+Tree 索引,Hash 索引,全文索引等等。

二、索引類型

1、Hash 索引

只有 memory(內存)存儲引擎支持 Hash 索引,Hash 索引引用索引列的值計算該值的 hashCode,然后在 hashCode 相應的位置存儲該值所在行數據的物理位置,因為使用散列算法,因此訪問速度非常快,但是一個值只能對應一個 hashCode,而且是散列的分布式,因此 Hash 索引不支持范圍查找和排序的功能。

2、BTree 索引和 B +Tree 索引

(1)BTree 索引

BTree 索引是平衡搜索多叉樹木,如果設樹的深度為 2d(d 1),高度為 h,那么 BTree 要滿足以下條件:
①每個葉子結點的高度要一樣,等于 h;
②每個葉子節點由 n - 1 個 key 和 n 個指針 point 組成,其中 d = n = 2d,key 和 point 相互間隔,結點兩端一定是 key;
③葉子結點指針都為 null;
④非葉子結點的 key 都是 [key,data] 二元組,其中 key 表示作為索引的鍵,data 為鍵值所在行的數據。

(2)B+Tree 索引

B+Tree 是 BTree 的一個變種,如果設 d 為樹的度,h 為數的高度,B+Tree 和 BTree 的不同主要在于:
①B+Tree 中的非葉子結點不存儲數據,只存儲鍵值;
②B+Tree 的葉子結點沒有指針,所有鍵值都會出現在葉子結點上,且 key 存儲的鍵值對應 data 數據的物理地址;
③B+Tree 的每個非葉子結點由 n 個鍵值 key 和 n 個指針 point 組成。

(3)B+Tree 對比 BTree 優點:

①磁盤讀寫代價更低;
②查詢速度更穩定。

3、全文索引

FullText(全文)索引,僅可用于 MyISAM 和 InnoDB,針對較大的數據,生成全文索引非常的消耗時間和空間。
在生成 FullText 索引時,會為文本生成一份單詞的清單,在索引時會根據這個單詞的清單進行索引。

以上是“MySQL 索引的底層實現原理是什么”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-04發表,共計1069字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 南木林县| 郴州市| 定西市| 凤山县| 新化县| 株洲县| 韩城市| 景泰县| 旅游| 科技| 泉州市| 嘉义县| 上饶市| 堆龙德庆县| 霍城县| 锡林浩特市| 周至县| 额济纳旗| 揭阳市| 绥江县| 汾西县| 壶关县| 南雄市| 隆昌县| 弥渡县| 邛崃市| 水城县| 彭山县| 乐山市| 文登市| 亳州市| 林甸县| 西青区| 清苑县| 迭部县| 泰州市| 平利县| 辉县市| 陈巴尔虎旗| 禄丰县| 包头市|