Что такое формат файла IBD?
Files with the .ibd extension store MySQL InnoDB database table data, including table rows, clustered indexes, and secondary indexes. In file-per-table mode - the default since MySQL 5.6 - each .ibd file holds one table's data and indexes, with the file name corresponding to the table name. Earlier configurations allowed a shared tablespace for multiple tables and indexes, where each tablespace was identified by a unique ID number.
.ibd files contain fixed-size pages, 16 KB by default (configurable from 4 KB to 64 KB at creation). The format is binary and is divided into several page types with defined roles:
FSP_HDR/ header page - page 0, containing the tablespace header and metadataINDEXpages - B-tree pages holding table rows (clustered on the primary key) and secondary index entriesXDES PAGE- Extent Descriptor Page, describing the contents of extent pagesINODE PAGE- page containing file segment information
.ibd files have a complex internal structure and should be opened using dedicated database tools. The format supports optional transparent encryption (AES-based InnoDB TDE, available since MySQL 5.7) and optional page-level compression (ROW_FORMAT=COMPRESSED or transparent page compression). Each page carries a per-page CRC32 checksum for integrity verification.
As of MySQL 8.0, the table schema (Serialized Dictionary Information, SDI) is embedded directly in the .ibd, eliminating the separate .frm file required by MySQL 5.7 and earlier. The .ibd format is also supported by MariaDB and Percona Server.
Importing .ibd data between servers requires that the accompanying .cfg metadata file - and, if the tablespace is encrypted, a .cfp file - be imported as well.
Безопасность и защита
РИСК: MEDIUMAn .ibd is inert data - it does not execute - but it carries real operational and privacy risk. Operationally, never copy, move or delete .ibd files while the MySQL server is running, and never mix .ibd files from different server versions or without their system tablespace (ibdata1) and redo logs - doing so corrupts the table or crashes the server; the supported way to move them is transportable tablespaces. Privacy-wise, an .ibd contains the table's actual rows in plaintext on disk (unless TDE encryption is enabled), so a leaked .ibd is a data breach: production .ibd files can expose user records, credentials or PII. Handle and store them like the sensitive database they are.
Детали формата
в двух словахПрограммы, открывающие файлы IBD
Технические подробности
глубокая спецификация| Default page size | 16 KB; configurable at tablespace creation to 4 KB, 8 KB, 32 KB, or 64 KB via innodb_page_size |
| Byte order | Big-endian - all multi-byte integers are stored in big-endian order on disk |
| File format variant | Antelope (REDUNDANT/COMPACT row formats, MySQL ≤5.7) or Barracuda (DYNAMIC/COMPRESSED, MySQL 5.7+) |
| Page header/trailer | Each page carries a 38-byte FIL header and an 8-byte FIL trailer enclosing the page body |
| File signature | No fixed magic bytes; first page is FSP_HDR (type 0x0008 at bytes 24-25 of the FIL header) |
| Per-page checksum | CRC32 by default (since MySQL 5.6); also supports InnoDB legacy or none - value stored in FIL header and trailer |
| Index structure | B+ tree clustered on the primary key; secondary indexes store primary-key references rather than direct row pointers |
| Extent size | 1 MB (64 consecutive 16 KB pages); the tablespace grows one extent at a time |
| Encryption | AES-256 InnoDB transparent data encryption (TDE) with per-page key wrapping; introduced in MySQL 5.7 and MariaDB 10.1 |
| Compression | ROW_FORMAT=COMPRESSED uses zlib at the page level (Barracuda format); transparent page compression uses filesystem hole-punching |
| Overflow storage | Column values exceeding the in-page threshold spill to dedicated off-page BLOB/overflow pages within the same tablespace |
| Schema storage | MySQL 8.0+ embeds SDI (Serialized Dictionary Information) in the tablespace; MySQL 5.7 and earlier store schema in a separate .frm file |
| Supported row formats | REDUNDANT, COMPACT (Antelope); DYNAMIC (default since MySQL 5.7), COMPRESSED (Barracuda) |
| Torn-page protection | Doublewrite buffer writes each 16 KB page to a dedicated area before the final tablespace location, guarding against partial writes |
| MIME type | application/octet-stream (no format-specific MIME type registered) |
| Developer | Oracle Corporation (InnoDB engine; originally Innobase Oy, acquired by Oracle in 2005) |
| Выпущен | 2005-2008 (file-per-table via innodb_file_per_table; default since MySQL 5.6, 2013) |
| Последняя версия | InnoDB in MySQL 8.0 / 8.4 (data dictionary moved into the tablespace; .frm removed) |
| Спецификация | dev.mysql.com |
Конвертации IBD
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах IBD.