日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 原理 ~ 索引通说

發布時間:2025/7/14 数据库 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 原理 ~ 索引通说 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介: 來說說索引吧
目的:為了加快數據庫的數據查找速度,索引應用而生
基礎知識
基本定義
? 1 遍歷 所謂遍歷二叉樹,就是按一定的規則和順序走遍二叉樹的所有結點,使每一個結點都被訪問一次,而且只被訪問一次。由于二叉樹是非線性結構,因此,樹的遍歷實質上是將二叉樹的各個結點轉換成為一個線性序列來表示。
? 3 深度 節點的層數
? 4 NX樹 寬度定義為具有最多結點數的層中包含的結點數。
數據模型的選擇
? ?目的 為了讓一個查詢盡量少地讀磁盤,就必須讓查詢過程訪問盡量少的數據庫
? ?1 讓樹容納更多的子節點,也即是N叉數,N 叉樹中的N取決于數據塊的大小
? ?2 N 叉樹由于在讀寫上的性能優點,以及適配磁盤的訪問模式,已經在數據庫中廣泛應用了
問題系列
? 1 為什么mysql提倡使用自增主鍵
? ? ? 1 自增主鍵是順序插入,不會引起頁分裂,減少索引維護成本
? ? ? 2 自增主鍵int類型越短,普通索引的葉子節點就越小,普通索引占用的空間也就越小
? ? ? 3 采用pt-osc操作int自增主鍵類型的速度遠遠大于非自增長主鍵
? 2? innodb為什么采用B+數索引

? ? 關于B+樹你要知道的

? ? ?1 B+樹是平衡多路查找樹? ??

? ? ?2 B+樹是多路查找樹,一個節點能放n個值,n = 16K / 每個索引值的大小。
? ? ?3 B+樹的路數為n+1,n是每個節點存在的值數量,例如每個節點存放16個值,那么這棵樹就是17路。
? ? ?4 B+樹索引并不能找到一個給定鍵值的具體行。B+樹只能找到存放數據行的具體頁,然后把頁讀入到內存中,再在內存中查找指定的數據

? ? 總結B+數能容納更多的節點,存儲更多的key,并且只有葉子節點存儲data. 減少了磁盤IO的交互次數,提高了效率,所有的葉子結點和相連的節點使用鏈表相連,便于區間查找和遍歷。

? 3 innodb的索引存儲形式
? ? ?1 innodb每個索引都自己維護一個B+數索引
? ? ?2 主鍵索引的葉子節點包含data域,非主鍵索引的葉子節點對應的是主鍵值
? ? ? ? ? ? select * from b where id= 直接搜索id的B+數
? ? ? ? ? ? select * from b where k= 根據K先查詢查詢K的B+數,活的相應的主鍵,再到主鍵維護的B+數上尋找對應的數據

轉載于:https://www.cnblogs.com/danhuangpai/p/9997028.html

總結

以上是生活随笔為你收集整理的mysql 原理 ~ 索引通说的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。