從資料頁的角度理解B 樹查詢

2021-10-08 09:29:26 字數 1306 閱讀 9617

* 在資料庫中,不論讀一行,還是讀多行,都是將這些行所在的頁進行載入。也就是說,資料庫管理儲存空間的基本單位是頁。

* 行 《 頁 《 區 《 段 《 表。

1. 資料頁

2. 系統頁

3. undo頁

4. 事務資料頁

1. 檔案頭	38位元組, 描述頁的資訊

2. 頁頭 56位元組,頁的狀態資訊

3. 最大最小記錄 26位元組,是兩個虛擬的行記錄

4. 使用者記錄 不確定, 儲存行記錄內容

5. 空閒空間 不確定, 頁中還沒有被使用的空間

6. 頁目錄 不確定, 儲存使用者記錄的相對位置

7. 檔案尾 8位元組, 校驗頁是否完整。

1. 檔案通用部分。檔案頭和檔案尾

2. 記錄部分。最小,最大記錄,使用者記錄。

3. 索引部分。頁目錄, 記錄索引的作用。

* 將所有的記錄分成幾個組,包括最小記錄和最大記錄,但不包括標記為「已刪除的記錄」

* 第1組,最小記錄的分組,只有乙個記錄。最後一組,最大記錄的分組,有1~8條記錄。其餘的組的記錄數量在4~8之間。

* 在每個組中最後一條記錄的頭資訊會儲存該組一共有多少條記錄,作為n_owned欄位。

* 頁目錄用來儲存每組最後一條記錄的位址偏移量,

1. b+樹是如何進行記錄檢索的

如果通過 b+ 樹的索引查詢行記錄,首先是從 b+ 樹的根開始,逐層檢索,直到找到葉子節點,也就是找到對應的資料頁為止,將資料頁載入到記憶體中,頁目錄中的槽(slot)採用二分查詢的方式先找到乙個粗略的記錄分組,然後再在分組中通過鍊錶遍歷的方式查詢記錄。

2. 普通索引和唯一索引在拆線呢效率上有什麼不同

唯一索引就是在普通索引上增加了約束性,也就是關鍵字唯一,找到了關鍵字就停止檢索。而普通索引,可能會存在使用者記錄中的關鍵字相同的情況,根據頁結構的原理,當我們讀取一條記錄的時候,不是單獨將這條記錄從磁碟中讀出去,而是將這個記錄所在的頁載入到記憶體中進行讀取。innodb 儲存引擎的頁大小為 16kb,在乙個頁中可能儲存著上千個記錄,因此在普通索引的字段上進行查詢也就是在記憶體中多幾次「判斷下一條記錄」的操作,對於 cpu 來說,這些操作所消耗的時間是可以忽略不計的。所以對乙個索引字段進行檢索,採用普通索引還是唯一索引在檢索效率上基本上沒有差別。

資料頁的角度理解B 樹查詢

在資料庫中,不論讀一行,還是讀多行,都是將這些行所在的頁進行載入。也就是說,資料庫管理儲存空間的基本單位是頁 1.區 extent 是比頁大一級的儲存結構,在 innodb 儲存引擎中,乙個區會分配 64 個連續的頁.2.段 segment 由乙個或多個區組成,區在檔案系統是乙個連續分配的空間 在 ...

從原始碼的角度理解Volley

今天從原始碼的角度來理解一下volley中部分功能的實現。新增請求到請求佇列 將請求新增到請求佇列中 public requestadd requestrequest 為請求設定順序編號.request.setsequence getsequencenumber 新增標記 request.addma...

從電路的角度理解特徵阻抗

傳輸顯得特徵阻抗不是真實的電阻,微波技術課程會從波的角度描述特徵阻抗,這次試圖從電路的角度來理解 無損傳輸線是分布的l c 網路,假設是無限長傳輸線 從a,b兩點看入的阻抗是相等的,所以可以簡化成下圖 化簡可得 這裡l c都是趨近於零的值,因為傳輸線是分布引數dl 0 所以我們可以忽略高階項,得到 ...