16.6 Информация о сериализованном словаре (SDI)
Помимо хранения метаданных об объектах базы данных в словаре данных, MySQL хранит их в сериализованном виде. Эти данные называются информацией о сериализованном словаре (SDI). InnoDB хранит данные SDI в файлах своей табличной области. NDBCLUSTER хранит данные SDI в словаре NDB. Другие движки хранения хранят данные SDI в .sdi файлах, которые создаются для данной таблицы в каталоге базы данных этой таблицы. Данные SDI генерируются в компактном JSON формате.
Информация о сериализованном словаре (SDI) присутствует во всех InnoDB файлах табличной области, за исключением файлов временной табличной области и файлов области отмены.
Записи SDI в файле табличной области InnoDB описывают только объекты таблиц и табличных областей, содержащихся в этой области.
Данные SDI обновляются операциями DDL над таблицей или CHECK TABLE FOR
UPGRADE. Данные SDI не обновляются при обновлении MySQL-сервера до новой версии.
Наличие данных SDI обеспечивает избыточность метаданных. Например, если словарь данных становится недоступным, метаданные об объектах можно извлечь непосредственно из InnoDB файлов табличной области с помощью инструмента ibd2sdi.
Для InnoDB запись SDI требует одной страницы индекса, размер которой по умолчанию составляет 16 КБ. Однако данные SDI сжимаются для уменьшения занимаемого места.
Для разнесенных InnoDB таблиц, состоящих из нескольких табличных областей, данные SDI хранятся в файле табличной области первой разбиения.
MySQL-сервер использует внутренний API, к которому осуществляется доступ во время операций по созданию и обслуживанию записей SDI.
Команда IMPORT TABLE импортирует MyISAM таблицы на основе информации, содержащейся в .sdi файлах. Для получения дополнительной информации см. Раздел 15.2.6, «Команда IMPORT TABLE».
© 2025 Oracle
Licensed under the GPLv2 License.