麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 課堂 > 基礎知識 > 正文

innblock 用具 InnoDB page觀察利器

2024-09-12 20:30:02
字體:
來源:轉載
供稿:網友
  特別鳴謝
  筆者是知數堂早期學員,最初有寫這么一個工具的想法也得到葉金榮老師的認可和鼓勵,這個想法也整整耗掉了好幾個晚上的休息時間,這里再次感謝葉金榮老師對工具審核,葉老師的經驗和學識是每一位學員寶貴的財富。
  感謝<>主要作者周彥偉、王竹峰、強昌金對本工具的認可并授權引用部分內容,如果大家對本文的內容感到吃力可以自行參考該書,也可以和書中部分章節配合使用學習。
 
  一、前言
  InnoDB中索引塊的內部組織一直是大家比較感興趣并且樂于研究的東西,我們從很多書籍和文章都不惜筆墨進行大量的描述比如<>中就能感受到作者用了大量篇幅描述什么是slot、什么是heap、記錄的邏輯和物理順序是怎么樣的。
 
  但是我們卻很難直觀的看到,因為數據文件是二進制文件。雖然我們可以通過例如LINUX的hexdump等類似命令進行查看,但是大量的16進制信息很難直觀的提取出各種有用的信息,相信不少人和筆者一樣都是通過肉眼進行查看,但是這顯然是一種吃力又不討好的方法。
 
  在Oracle中我們可以通過dump block的方法查看block的信息,那么InnoDB是否也可以這樣呢?
 
  本著這種讓大家更加直觀的觀察到底層索引塊的信息的宗旨,筆者直接借用源碼中的各種宏定義,使用C++和STL list容器實現了這樣一個工具innblock。由于工作原因不能全身心投入代碼編寫,代碼有些混亂。所以如果有bug還請大家見諒以及提出,筆者會盡快進行更新,感謝。
 
  約定
  index page(索引頁、索引塊),InnoDB表是基于聚集索引的索引組織表,整個表其實不是聚集索引,就是普通索引。因此InnoDB表空間文件中,數據頁其實也是索引頁,所以下面我們統稱為索引頁,英文用page no表示;
 
  二、innblock簡介
  本工具有2個功能。
 
  第一個scan功能用于查找ibd文件中所有的索引頁。
 
  第二個analyze功能用于掃描數據塊里的row data。
 
  先看下 help 輸出
 
  ------------------------------------------------------------------------
  [Author]:gaopeng [Blog]:blog.itpub.net/7728585/abstract/1/ [QQ]:22389860
  [Review]:yejinrong@zhishutang [Blog]:imysql.com [QQ]:4700963
  -------USAGE:../innblock Datafile [scan/pageno] Blocksize
  [Datafile]:innodb data file!
  [scan]:physical scan data file to find index level and index block no
  [pageno]:which block you will parse
  [Blocksize](KB):block size of KB general is 16k only 4k/8k/16k/32k
  ------------------------------------------------------------------------
  scan功能
  [root@test test]# ./innblock  testblock.ibd scan 16
  analyze功能
  [root@test test]# ./innblock  testblock.ibd 3 16
  可以執行 innblock help 獲得更詳細的使用幫助信息。
 
  三、innblock的限制
  不支持REDUNDANT行格式的數據文件;
  只支持LINUX x64平臺;
  本工具直接讀取物理文件,部分dirty page可能延時刷盤而未能被讀取到,可以讓InnoDB及時刷盤再重新讀?。?br />  最好在MySQL 5.6/5.7版本下測試;
  只能解析索引頁,不支持inode page、undo log等類型的page;
  scan功能會包含delete后的索引塊和drop了的索引塊.
  不能讀取詳細的row data;
  建議采用獨立表空間模式,更便于觀察;
  建議僅在測試環境下學習和研究使用。
  四、 輸出信息詳解
  我在工具的help文檔中也有詳細的解釋,這里單獨對analyze功能解析數據塊的輸出詳解一番,并且我也會給出這些值來自源碼的哪個宏定義。這部分知識點在<>中也有詳細說明。
 
   基本信息(Block base info)
  [block_no]:page offset no inside space,begin is 0(取自 FIL_PAGE_OFFSET)
  索引頁碼(index page no),該頁相對于表空間的偏移量,從0開始計數。如果page no = 3,則實際上是第4個index page。
  [space_id]:this contains the space id of the page(FIL_PAGE_SPACE_ID)
  本索引頁所屬的表空間ID,可以在 INNODB_SYS_TABLES、INNODB_SYS_TABLESPACES、INNODB_SYS_DATAFILES 等系統視圖中查看。

(編輯:武林網)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 黄色7777 | 激情视频在线播放 | 九九精品视频观看 | h色网站免费观看 | 91久久国产露脸精品国产 | 亚洲一区二区免费 | 看毛片的网址 | 黄片毛片一级 | 国产又白又嫩又紧又爽18p | 九色 在线 | 一级黄色毛片免费 | 宅男噜噜噜66一区二区 | 亚洲最大的成人网 | 最新久久免费视频 | 艹男人的日日夜夜 | 亚洲欧美成aⅴ人在线观看 av免费在线播放 | 一级国产精品一级国产精品片 | 日韩av在线网址 | 免费久久精品 | 久草在线小说 | 黄色av网| 黄色网址在线免费播放 | 国产精品色在线网站 | 免费一级毛片在线播放不收费 | 伊人久操视频 | 成人福利视频在线 | 国产午夜精品一区二区三区免费 | 欧美精品一区二区性色 | 青草av.久久免费一区 | 黄色免费电影网址 | 国产午夜精品一区二区三区免费 | 日韩一级免费毛片 | 草莓视频久久 | 视频一区二区国产 | 亚洲码无人客一区二区三区 | 亚洲精华液久久含羞草 | 午夜视频在线观看免费视频 | 国产喷白浆10p | chinese18 xxxx videos| 91精品国产91久久久久久丝袜 | 精品亚洲一|