您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“mysql頁的概念是什么”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“mysql頁的概念是什么”這篇文章吧。
說明
1、頁是 InnoDB 中管理數據的最小單元。Buffer Pool 中存的就是一頁一頁的數據。
2、往MySQL插入的數據最終都是存在頁中的。在 InnoDB 中的設計中,頁與頁之間是通過一個雙向鏈表連接起來。
數據頁構成
File Header
描述頁的校驗和,頁號,上/下頁的指針,頁的類型,頁屬于哪個表空間等信息
Page Header
記錄了有多少個slot,空閑空間的偏移量,已經存儲了多少條數據等信息
Infimum+Supremum
這兩個并非是用戶插入的數據,是虛擬列,Infimum代表著當前頁中最小的數據行,Supremum代表當前頁中最大的數據行(按照主鍵排序的大小),User records記錄都位于它們之間,并且通過每條記錄的行格式中的一些屬性(next_record)形成按照主鍵排列順序的數據鏈表,再加上最小的虛擬行Infimum與最大的Supremum就組成了當前頁的數據鏈表。
User records
用戶插入的數據行
Free sparce
當前未存放用戶數據的空間
Page Directory
如果一行數據長度比較小,比如表只有一個int類型的id字段,那么一個頁中會存放非常多的行記錄。如果查詢數據就需要遍歷頁中所有的記錄取出滿足select條件的數據,這樣的話遍歷速度會比較慢。Page Directory存放了很多slot,slot存放著每個組中最大的數據行的偏移量,數據鏈表是按照主鍵排列有序的,所以Page Directory可以使用二分查找法快速定位要插入與快速查找的數據在頁中的位置.組的生成邏輯三言兩語說不清楚,可以直接理解成,對于當前頁中的數據行進行橫向劃分,大部分組中數據有4-8行。
File Trailer
存儲了校驗和LSN,與File Header的校驗一起校驗數據的準確性。
以上是“mysql頁的概念是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。