Это ibdata1
не сокращает, является особенно раздражающей особенностью MySQL. ibdata1
Файл фактически не может быть уменьшен , если вы не удалите все базы данных, удалите файлы и перезагрузите дамп.
Но вы можете настроить MySQL так, чтобы каждая таблица, включая ее индексы, сохранялась как отдельный файл. Таким образом ibdata1
, не будет расти как большой. Согласно комментарию Билла Карвина, это включено по умолчанию в версии 5.6.6 MySQL.
Это было некоторое время назад, я сделал это. Однако, чтобы настроить ваш сервер на использование отдельных файлов для каждой таблицы, вам нужно изменить my.cnf
, чтобы включить это:
[mysqld]
innodb_file_per_table=1
http://dev.mysql.com/doc/refman/5.5/en/innodb-multiple-tablespaces.html
Поскольку вы хотите освободить место, ibdata1
вы должны удалить файл:
- Выполните
mysqldump
все базы данных, процедуры, триггера и т.д. , за исключением mysql
и performance_schema
баз данных
- Отбросьте все базы данных, кроме двух указанных выше.
- Стоп MySQL
- Удалить
ibdata1
и ib_log
файлы
- Запустите MySQL
- Восстановить из дампа
При запуске MySQL на шаге 5, ibdata1
и ib_log
файлы будут восстановлены.
Теперь вы готовы идти. Когда вы создаете новую базу данных для анализа, таблицы будут располагаться в отдельных ibd*
файлах, а не в ibdata1
. Поскольку вы обычно удаляете базу данных вскоре после этого, ibd*
файлы будут удалены.
http://dev.mysql.com/doc/refman/5.1/en/drop-database.html
Вы, наверное, видели это:
http://bugs.mysql.com/bug.php?id=1341
Используя команду ALTER TABLE <tablename> ENGINE=innodb
или OPTIMIZE TABLE <tablename>
можно извлечь данные и индексные страницы из ibdata1 в отдельные файлы. Однако ibdata1 не будет уменьшаться, если вы не выполните описанные выше шаги.
Что касается того information_schema
, что не нужно и не возможно отбросить. На самом деле это просто набор представлений только для чтения, а не таблиц. И нет никаких файлов, связанных с ними, даже каталог базы данных. informations_schema
Используют память DB-двигатель и отбрасываются и регенерируют после остановки / перезапуска туздЫ. См. Https://dev.mysql.com/doc/refman/5.7/en/information-schema.html .