MySQL8 SDI


 

數據字典(Data Dictionary)中存儲了諸多數據庫的元數據信息如圖1所示,包括基本Database, table, index, column, function, trigger, procedure,privilege等;以及與存儲引擎相關的元數據,如InnoDB的tablespace, table_id, index_id等。

 

MySQL8開始刪除了原來的frm文件,並采用 Serialized Dictionary Information (SDI), 是MySQL8.0重新設計數據詞典后引入的新產物,並開始已經統一使用InnoDB存儲引擎來存儲表的元數據信息。SDI信息源記錄保存在ibd文件中。
如何可以查看表結構信息,官方提供了一個工具叫做ibd2sdi,在安裝目錄下可以找到,可以離線的將ibd文件中的冗余存儲的sdi信息提取出來,並以json的格式輸出到終端。

ibd2sdi /var/lib/mysql/mysql.ibd

 

MySQL8不僅將元數據信息存儲在數據字典表中,同時也冗余存儲了一份在SDI中。對於非InnoDB表,SDI數據在后綴為.sdi的文件中,而對於innodb,SDI數據則直接存儲與ibd中,如以下例子所示:

 

 

 

 

 

 

 

 

b2_360.sdi為json格式

cat b2_360.sdi | python -m json.tool

 

 

   

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM