婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 淺談MySQL之淺入深出頁原理

淺談MySQL之淺入深出頁原理

熱門標簽:400電話可以辦理嗎 拉卡拉外呼系統 高清地圖標注道路 外東北地圖標注 云南電商智能外呼系統價格 大眾點評星級酒店地圖標注 智能外呼系統復位 臨清電話機器人 話務外呼系統怎么樣

一、頁的概覽

我們往 MySQL 插入的數據最終都是存在頁中的。在 InnoDB 中的設計中,頁與頁之間是通過一個雙向鏈表連接起來。

而存儲在頁中的一行一行的數據則是通過單鏈表連接起來的。

上圖中的 User Records 的區域就是用來存儲行數據的。那 InnoDB 為什么要這么設計?假設我們沒有頁這個概念,那么當我們查詢時,成千上萬的數據要如何做到快速的查詢出結果?眾所周知,MySQL 的性能是不錯的,而如果沒有頁,我們剩下的只能是逐條逐條的遍歷數據了。

那頁是如何做到快速查詢的呢?在當前頁中,可以通過 User Records 中的連接每條記錄的單鏈表來進行遍歷,如果在當前頁中沒有找到,則可以通過下一頁指針快速的跳到下一頁進行查詢。

二、Infimum 和 Supremum

有人可能會說了,你在 User Records 中還不是通過遍歷來解決的,你就是簡單的把數據分了個組而已。如果我的數據根本不在當前這個頁中,那我難道還是得把之前的頁中的每一條數據全部遍歷完?這效率也太低了

當然,MySQL 也考慮到了這個問題,所以實際上在頁中還存在一塊區域叫做 The Infimum and Supremum Records ,代表了當前頁中最大和最小的記錄。

有了 Infimum RecordSupremum Record ,現在查詢不需要將某一頁的 User Records 全部遍歷完,只需要將這兩個記錄和待查詢的目標記錄進行比較。比如我要查詢的數據 id = 101 ,那很明顯不在當前頁。接下來就可以通過下一頁指針跳到下頁進行檢索。

三、使用Page Directory

可能有人又會說了,你這 User Records 里不也全是單鏈表嗎?即使我知道我要找的數據在當前頁,那最壞的情況下,不還是得挨個挨個的遍歷100次才能找到我要找的數據?你管這也叫效率高?

不得不說,這的確是個問題,不過是一個 MySQL 已經考慮到的問題。不錯,挨個遍歷確實效率很低。為了解決這個問題,MySQL 又在頁中加入了另一個區域 Page Directory

顧名思義,Page Directory 是個目錄,里面有很多個槽位(Slots),每一個槽位都指向了一條 User Records 中的記錄。大家可以看到,每隔幾條數據,就會創建一個槽位。其實我圖中給出的數據是非常嚴格按照其設定來的,在一個完整的頁中,每隔6條數據就會有一個 Slot。

Page Directory 的設計不知道有沒有讓你想起另一個數據結構——跳表,只不過這里只抽象了一層索引

MySQL 會在新增數據的時候就將對應的 Slot 創建好,有了 Page Directory ,就可以對一張頁的數據進行粗略的二分查找。至于為什么是粗略,畢竟 Page Directory 中不是完整的數據,二分查找出來的結果只能是個大概的位置,找到了這個大概的位置之后,還需要回到 User Records 中繼續的進行挨個遍歷匹配。

不過這樣的效率已經比我們剛開始聊的原始版本高了很多了。

四、頁的真實面貌

如果我開篇就把頁的各種組成部分,各種概念直接拋出來,首先我自己接受不了,這樣顯得很僵硬。其次,對頁不熟悉的人應該是不太能理解頁為什么要這么設計的。所以我按照查詢一條數據的一套思路,把頁的大致的面貌呈現給了大家。

實際上,頁上還存儲了很多其他的字段,也還有其他的區域,但是這些都不會影響到我們對頁的理解。所以,在對頁有了一個較為清晰的認知之后,我們就可以來看看真實的頁到底長啥樣了。

上圖就是頁的實際全部組成,除了我們之前提到過的,還多了一些之前沒有聊過的,例如 File HeaderPage HeaderFree SpaceFile Tailer 。我們一個一個來看。

4.1、File Header

其實File Header 在上文已經聊過了,只是不叫這個名字。上面提到的上一頁指針和下一頁指針其實就是屬于File Header的,除此之外還有很多其他的數據。

其實我比較抗拒把一堆參數列出來,告訴你這個大小多少,那個用來干嘛。對于我們需要詳細了解頁來說,其實暫時只需要知道兩個就足夠了,分別是:

  • FIL_PAGE_PREV
  • FIL_PAGE_NEXT

這兩個變量就是上文提到過的上一頁指針和下一頁指針,說是指針,是為了方便大家理解,實際上是頁在磁盤上的偏移量。

4.2、Page Header

比起 File HeaderPage Header 中的數據對我們來說就顯得更加熟悉了,我這里畫了一張圖,把里面的內容詳細的列了出來。

這里全列出來是因為了解這些參數的含義和為什么要設置參數,能夠更好的幫助我們了解頁的原理和構造,具體的看圖說話就行。

這里也很想吐槽,太多博客都寫的太僵硬,比如參數 PAGE_HEAP_TOP ,這里的 HEAP 很多博客都直接叫堆。這就跟你給Init寫注釋叫初始化一樣,還不如不寫。實際上你去研究一下就會知道,這里的堆實際上就是指User Records。

里面有個兩個參數可能會有點混淆,分別是PAGE_N_HEAPPAGE_N_RECS ,都是當前 User Records 中記錄的數量,唯一的不同在于,PAGE_N_HEAP 中是包含了被標記為刪除的記錄的, 而 PAGE_N_RECS 中就是實際上我們能夠查詢到的所有數據。

4.3、Infimum Supremum Records

上文中提到,Infimum Supremum Records會記錄當前頁最大最小記錄。實際上不準確,更準確的描述是最小記錄和最大紀錄的開區間。因為實際上 Infimum Records 會比當前頁中的最小值還要小,而 Supremum Records 會比當前頁中的最大值要大。

4.4、User Records

User Records 可以說是我們平時接觸的最多的部分了,畢竟我們的數據最終都在這。頁被初始化之后,User Records 中是沒有數據的,隨著系統運行,數據產生,User Records 中的數據會不斷的膨脹,相應的 Free Space 空間會慢慢的變小。

關于 User Records 中的概念,之前已經聊過了。這里只聊我認為很關鍵的一點,那就是順序。

我們知道,在聚簇索引中,Key 實際上會按照 Primary Key 的順序來進行排列。那在 User Records 中也會這樣嗎?我們插入一條新的數據到 User Records 中時,是否也會按照 Primary Key 的順序來對已有的數據重排序?

答案是不會,因為這樣會拉低 MySQL 處理的效率。

User Records 中的數據是由單鏈表指針的指向來保證的,也就是說,行數據實際在磁盤上的表現,是按照插入順序來排隊的,先到的數據在前面,后來的數據在后面。只不過通過 User Records 中的行數據之間的單鏈表形成了一個按照 Primary Key排列的順序。

用圖來表示,大概如下:

4.5、Free Space

這塊其實變相的在其他的模塊中討論了,最初 User Records 是完全空的,當有新數據進來時,會來 Free Space 中申請空間,當 Free Space 沒空間了,則說明需要申請新的頁了,其他沒什么特別之處。

4.6、Page Directory

這跟上文討論的沒什么出入,就直接跳過了。

4.7、File Trailer

這塊主要是為了防止頁在刷入磁盤的過程中,由于極端的意外情況(網絡問題、火災、自然災害)導致失敗,而造成數據不一致的情況,也就是說形成了臟頁。

里面有只有一個組成部分:

五、總結

到此,我認為關于頁的所有東西就聊的差不多了,了解了底層的頁原理,我個人認為是有助于我們更加友好、理智的使用 MySQL 的,使其能發揮出自己應該發揮的極致性能。

以上就是淺談MySQL之淺入深出頁原理的詳細內容,更多關于MySQL 頁原理的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • php頁面,mysql數據庫轉utf-8亂碼,utf-8編碼問題總結
  • 在MySQL中使用LIMIT進行分頁的方法
  • 修改Innodb的數據頁大小以優化MySQL的方法
  • Spring MVC+MyBatis+MySQL實現分頁功能實例
  • nodejs mysql 實現分頁的方法
  • 詳解MySQL的limit用法和分頁查詢語句的性能分析
  • php+mysql實現簡單登錄注冊修改密碼網頁
  • MySQL百萬級數據分頁查詢優化方案
  • Mysql排序和分頁(order by&limit)及存在的坑
  • MySQL百萬級數據量分頁查詢方法及其優化建議

標簽:溫州 三明 山西 定西 無錫 揚州 阿里 福州

巨人網絡通訊聲明:本文標題《淺談MySQL之淺入深出頁原理》,本文關鍵詞  淺談,MySQL,之淺,入深出,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《淺談MySQL之淺入深出頁原理》相關的同類信息!
  • 本頁收集關于淺談MySQL之淺入深出頁原理的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    日韩一级视频免费观看在线| 日韩一区二区三区观看| 国产成人福利片| 99视频一区二区| 99精品视频中文字幕| 9人人澡人人爽人人精品| 国产成人一级电影| 国内精品伊人久久久久av一坑| 69堂国产成人免费视频| 91蜜桃婷婷狠狠久久综合9色| 欧美亚洲综合在线| 精品久久人人做人人爰| 中文字幕av不卡| 亚洲高清视频的网址| 久久99精品国产麻豆婷婷| www.日韩大片| 精品美女一区二区| 亚洲成人777| 91社区在线播放| 国产成人啪午夜精品网站男同| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 99久久国产综合精品麻豆| 久久久久久夜精品精品免费| youjizz久久| 久久精品夜夜夜夜久久| 亚洲一区影音先锋| 懂色av噜噜一区二区三区av| 日韩三级视频在线看| 亚洲一区二区在线视频| av在线一区二区| 国产精品久久国产精麻豆99网站| 午夜精品福利在线| 欧美日韩国产片| 日日夜夜一区二区| 欧美系列一区二区| 亚洲国产三级在线| 欧美福利一区二区| 日本最新不卡在线| 日韩欧美国产电影| 成人综合在线观看| 亚洲精品国产无套在线观| bt7086福利一区国产| 一区二区在线观看视频在线观看| 风流少妇一区二区| 香蕉成人伊视频在线观看| 色88888久久久久久影院野外| 亚洲成人综合网站| 欧美成人女星排行榜| 国产成人免费在线观看| 欧美另类久久久品| 午夜欧美一区二区三区在线播放| 91在线观看地址| 有坂深雪av一区二区精品| 色综合一个色综合| 亚洲图片有声小说| 5858s免费视频成人| 久久国产生活片100| 国产日韩av一区二区| 色婷婷久久综合| 美国十次综合导航| 中文字幕日韩精品一区| 欧美三级蜜桃2在线观看| 美女视频黄a大片欧美| 中文字幕中文字幕一区二区| 欧美亚洲一区三区| 成人久久视频在线观看| 日本aⅴ亚洲精品中文乱码| 中文欧美字幕免费| 在线不卡欧美精品一区二区三区| 粉嫩蜜臀av国产精品网站| 蜜臂av日日欢夜夜爽一区| 亚洲免费在线视频一区 二区| 日韩一区二区三区电影在线观看 | 国产91精品在线观看| 蓝色福利精品导航| 亚洲精品水蜜桃| 中文字幕第一页久久| 久久久久久久久久久久久久久99 | 丝袜亚洲另类欧美| 亚洲电影在线播放| 麻豆一区二区三区| 国产精品自拍一区| 成人丝袜高跟foot| 亚洲欧美日韩系列| 日韩黄色免费网站| 亚洲一级电影视频| 亚洲免费在线播放| 一区二区日韩电影| 午夜影院久久久| 免费成人性网站| 91首页免费视频| 欧美变态凌虐bdsm| 亚洲国产成人自拍| 国产美女主播视频一区| 久久99精品久久久久久动态图 | 色素色在线综合| 欧美一区二区三区视频免费| 制服丝袜在线91| 亚洲欧美日韩小说| 99久久久国产精品免费蜜臀| 精品乱人伦一区二区三区| 午夜欧美电影在线观看| a在线播放不卡| 制服丝袜亚洲精品中文字幕| 亚洲欧洲韩国日本视频| 五月激情六月综合| 日韩高清不卡在线| 欧美日韩免费视频| 麻豆精品视频在线观看| 日韩免费福利电影在线观看| 亚洲一区二区三区自拍| 在线视频一区二区免费| 亚洲精选视频免费看| 欧美亚洲免费在线一区| 亚洲在线免费播放| 欧美日韩成人综合天天影院| 天天综合色天天综合| 日韩一区二区不卡| 99国内精品久久| 亚洲成人av一区二区| 日韩一区二区免费电影| 国产不卡视频一区二区三区| 国产精品美女一区二区三区| www.欧美日韩| 卡一卡二国产精品| 国产精品电影一区二区| 欧美日韩1234| 99视频在线精品| 国产精品一区二区不卡| 亚洲成人动漫一区| 亚洲国产成人在线| 欧美va亚洲va国产综合| 欧美日韩免费在线视频| 91香蕉视频黄| 成人国产一区二区三区精品| 爽好久久久欧美精品| 一区二区激情视频| 亚洲蜜桃精久久久久久久| 欧美大黄免费观看| 91精品国产综合久久国产大片| caoporn国产一区二区| www.欧美.com| 日韩视频在线观看一区二区| 97成人超碰视| 欧美性生活久久| 欧美夫妻性生活| 日韩午夜中文字幕| 精品美女在线播放| 久久精品欧美日韩| 久久久99精品免费观看不卡| 亚洲精品一区二区三区福利| 国产日韩三级在线| 中文字幕日韩一区二区| 国产精品电影一区二区| 亚洲乱码国产乱码精品精小说| 亚洲欧美日韩国产另类专区| 亚洲男人的天堂在线aⅴ视频| 一区二区在线观看免费| 色婷婷久久久综合中文字幕 | 亚洲欧美视频在线观看| 亚洲综合免费观看高清在线观看| 视频一区二区三区中文字幕| 精品在线免费观看| 一本一道综合狠狠老| 欧美另类久久久品| 国产蜜臀97一区二区三区 | 亚洲女人****多毛耸耸8| 视频一区中文字幕国产| 高清不卡在线观看av| 日韩美女在线视频| 亚洲午夜免费福利视频| 国产一二三精品| 91.com在线观看| 亚洲成人动漫在线观看| www.99精品| 中文字幕乱码久久午夜不卡| 免费欧美在线视频| 欧美精品电影在线播放| 亚洲五码中文字幕| 91精彩视频在线观看| 一区二区三区视频在线观看| 3d成人动漫网站| 中文在线资源观看网站视频免费不卡| 国产精品久久久久久久久动漫 | 国产福利不卡视频| 亚洲精品视频自拍| 国产精品婷婷午夜在线观看| 国产日产精品一区| 久久综合资源网| 亚洲欧洲av在线| 91蝌蚪porny| 亚洲一卡二卡三卡四卡无卡久久| 91尤物视频在线观看| 亚洲精品乱码久久久久久日本蜜臀| 成人va在线观看| 亚洲高清在线视频| 2020国产精品久久精品美国| 国产高清成人在线| 亚洲福利国产精品| 2021久久国产精品不只是精品|