16.6 Информация о сериализованном словаре (SDI)
Помимо хранения метаданных об объектах базы данных в словаре данных, MySQL хранит их в сериализованной форме. Эти данные называются информацией сериализованного словаря (SDI). InnoDB хранит данные SDI в файлах своей табличной области. NDBCLUSTER хранит данные SDI в словаре NDB. Другие движки хранения данных хранят данные SDI в файлах .sdi, которые создаются для заданной таблицы в каталоге базы данных этой таблицы. Данные SDI генерируются в компактном формате JSON.
Информация сериализованного словаря (SDI) присутствует во всех InnoDB файлах табличной области, за исключением временных и undo-файлов табличной области. Записи 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.