Ответы:
Файл ibdata1 является системным табличным пространством для инфраструктуры InnoDB.
Он содержит несколько классов для информации, необходимой для InnoDB
Нажмите здесь, чтобы увидеть графическое представление
Вы можете отделить страницы данных и индексов от ibdata1, включив innodb_file_per_table . Это приведет к тому, что любая вновь созданная таблица InnoDB будет хранить данные и индексные страницы во внешнем .ibd
файле.
пример
CREATE TABLE mydb.mytable (...) ENGINE=InnoDB;
создает /var/lib/mysql/mydb/mytable.frm
/var/lib/mysql/mydb/mytable.ibd
Независимо от того, где хранится таблица InnoDB, функциональность InnoDB требует поиска метаданных таблицы, а также сохранения и извлечения информации MVCC для поддержки соответствия ACID и изоляции транзакции. .
Вот мои прошлые статьи по отделению табличных данных и индексов от ibdata1
Oct 29, 2010
: Мой оригинальный пост в StackOverflowNov 26, 2011
: ОШИБКА 1114 (HY000) в строке 6308 в файле & Таблица user_analysis заполненаFeb 03, 2012
: Плановая оптимизация таблиц в MySQL InnoDBMar 25, 2012
: Почему InnoDB хранит все базы данных в одном файле?Apr 01, 2012
: Целесообразно ли использовать innodb_file_per_table?ib_logfile0
,ib_logfile1
)Если вы хотите знать, для чего ib_logfile0
и ib_logfile1
для чего они нужны, это журналы повторов InnoDB. Их никогда не следует стирать или изменять до тех пор, пока не произойдет полное нормальное отключение mysqld . Если mysqld когда-либо падает, просто запустите mysqld. Он будет считывать ib_logfile0
и ib_logfile1
проверять любые изменения данных, которые не были отправлены в буфер двойной записи в ibdata1
. Он будет воспроизводить (повторять) эти изменения. Как только они будут воспроизведены и сохранены, mysqld будет готов к новым соединениям с БД.
innodb_file_per_table disabled, Data/Index Pages Stored in /var/lib/mysql/mydb/mytable.ibd
и innodb_file_per_table enbled, Data/Index Pages Stored in ibdata1
должно быть наоборот, не так ли?