MySQL 8.4 參考手冊  /  MySQL 資料字典  /  序列化字典資訊 (SDI)

16.6 序列化字典資訊 (SDI)

除了將資料庫物件的中繼資料儲存在資料字典中之外,MySQL 也會以序列化格式儲存。此資料稱為序列化字典資訊 (SDI)。InnoDB 將 SDI 資料儲存在其表格空間檔案中。NDBCLUSTER 將 SDI 資料儲存在 NDB 字典中。其他儲存引擎將 SDI 資料儲存在 .sdi 檔案中,這些檔案是針對表格的資料庫目錄中的指定表格所建立的。SDI 資料會以精簡的 JSON 格式產生。

序列化字典資訊 (SDI) 存在於所有 InnoDB 表格空間檔案中,臨時表格空間和復原表格空間檔案除外。InnoDB 表格空間檔案中的 SDI 記錄僅描述表格空間內包含的表格和表格空間物件。

SDI 資料會在對表格執行 DDL 作業或執行 CHECK TABLE FOR UPGRADE 時更新。當 MySQL 伺服器升級至新的版本或版本時,不會更新 SDI 資料。

SDI 資料的存在提供了中繼資料的備援。例如,如果資料字典無法使用,可以使用 ibd2sdi 工具直接從 InnoDB 表格空間檔案中提取物件中繼資料。

對於 InnoDB,一個 SDI 記錄需要一個索引頁面,預設大小為 16KB。但是,SDI 資料會壓縮以減少儲存空間。

對於由多個表格空間組成的分割 InnoDB 表格,SDI 資料儲存在第一個分割區的表格空間檔案中。

MySQL 伺服器在 DDL 作業期間使用一個內部 API 來建立和維護 SDI 記錄。

IMPORT TABLE 陳述式根據 .sdi 檔案中包含的資訊匯入 MyISAM 表格。如需詳細資訊,請參閱 第 15.2.6 節,「IMPORT TABLE 陳述式」