Pre-General Availability Draft: 2017-10-17
In addition to storing metadata about database objects in the data
dictionary, MySQL stores it in serialized form. This data is
referred to as Serialized Dictionary Information (SDI).
InnoDB stores SDI data within its tablespace
files. Other storage engines store SDI data in
.sdi files that are created in the schema
directory. SDI data is stored in
Serialized Dictionary Information (SDI) is present in all
InnoDB tablespace files except for temporary
tablespace and undo tablespace files. SDI records in an
InnoDB tablespace file only describe schema,
table, and tablespace objects contained within that tablespace.
The presence of SDI data provides metadata redundancy. For
example, if the data dictionary becomes unavailable, object
metadata can be extracted directly from
tablespace files using the ibd2sdi tool.
InnoDB, an SDI record requires a single
index page, which is 16k in size by default. However, SDI data is
compressed to reduce the storage footprint.
InnoDB tables comprised of
multiple tablespace files, SDI data in each tablespace includes
metadata for all partitions. For example, if a table has four
partitions, and each partition resides in a separate
tablespace, SDI data for all partitions is stored four
The MySQL server uses an internal API that is accessed during DDL operations to create and maintain SDI records.