Раздельные файлы для таблиц InnoDB в MySQL
Рецепт был опубликован 10 декабря 2010 года в 18:31, а менялся 10 декабря 2010 года в 19:23.
Постоянная ссылка: http://www.nixp.ru/recipes/27.html
InnoDB по умолчанию хранит все таблицы в одном файле (общий tablespace). Файл обычно располагается в директории /var/lib/mysql и называется ibdata1.
В некоторых ситуациях вы можете захотеть сделать так, чтобы InnoDB хранил каждую таблицу в своем отдельном файле. Для этого нужно в конфигурационный файл mysql (/etc/mysql/my.cnf) в секцию [mysqld] добавить следующий параметр:
[mysqld] innodb_file_per_table = 1
Если вы пользуетесь debian-based дистрибутивом, то скорее всего у вас есть специальная директория для хранения «своих расширений» к основному конфигурационному файлу MySQL. В этом случае вам будет достаточно следующей команды:
$ echo -e '[mysqld]\ninnodb_file_per_table\t=1' > /etc/mysql/conf.d/innodb_separate_tablespace.cnf
После перезапуска все новые таблицы будут создаваться в раздельных файлах с путями /var/lib/mysql/<ИМЯ_БД>/<ИМЯ_ТАБЛИЦЫ>.ibd .
Если вы хотите полностью избавиться от общего tablespace вам придется выполнить следующие шаги:
- сделать полный дамп БД (mysqldump --all-databases > dump.sql);
- остановить MySQL;
- удалить директорию с данными MySQL (sudo rm -rf /var/lib/mysql);
- создать заново директорию для данных MySQL (mysql_install_db);
- загрузить данные (mysql < dump.sql).
Подробнее в документации MySQL: http://dev.mysql.com/doc/refman/5.1/en/innodb-multiple-tablespaces.html.
- Из той же серии:
- Разумная блокировка таблиц в mysqldump во время создания дампа
- Как сменить пароль администратора (root) в СУБД MySQL?
- Как отбирать нужную информацию в общем логе SQL-запросов MySQL?
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1