Відповіді:
Файл 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 Redo Logs. Їх ніколи не слід стирати чи змінювати розмір, доки не відбудеться повне нормальне відключення 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
має бути навпаки, чи не так?