MySQL 9.0 版本說明
除了在資料字典中儲存資料庫物件的中繼資料之外,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 陳述式」。