Большой /var/lib/mysql/ibdata1

265
07 апреля 2017, 22:07

Я сохранял данные из таблиц в текстовые файлы. Всего вышло примерно 40-60 кбт. Но все файлы mySql занимают 760 мб.

В процессе разработки в таблицы бд вставлялись данные, а также данные обновлялись и удалялись.

Жаль я точно не помню сколько занимал mySql (то есть директория где размещены файлы бд) сразу же после установки. Но было гораздо меньше чем 700 мб.

Сейчас моя бд "занимает" 300 с чем-то кбт, ну то есть это frm файлы заполненные нулями.

  du -hs /var/lib/mysql/*
  0       /var/lib/mysql/debian-5.5.flag
  763M    /var/lib/mysql/ibdata1
  5,0M    /var/lib/mysql/ib_logfile0
  5,0M    /var/lib/mysql/ib_logfile1
  316K    /var/lib/mysql/mbs
  1,1M    /var/lib/mysql/mysql
  4,0K    /var/lib/mysql/mysql_upgrade_info
  212K    /var/lib/mysql/performance_schema

Как нормализовать (уменьшить, дефрагентировать(?)) файлы бд?

И почему оно так распухло?

Где-то когда-то читал, что это так потому что mySql типа резервирует место для данных - не помню :(.

Таблицы в MyISAM, сервер 5.5.54. Сначала таблицы были в MyISAM.

Answer 1

Мануал

Because the system tablespace never shrinks, and is shared across all databases in an instance, avoid loading huge amounts of temporary data on a space-constrained system when innodb_file_per_table is disabled. Set up a separate instance in such cases, so that you can drop the entire instance to reclaim the space.

Резюме: Сделать дамп всех БД (либо временно сменить движок - например, на MyISAM), переинициализировать системное хранилище, восстановить БД.

Рекомендация: Включить innodb_file_per_table.

READ ALSO
Что такое упаковка и распаковка (boxing/unboxing) и зачем?

Что такое упаковка и распаковка (boxing/unboxing) и зачем?

Что это вообще такое упаковка и распаковка (boxing/unboxing) и зачем?

302
Первая страница в Spring MVC

Первая страница в Spring MVC

Как сделать так чтобы какая та заданная страница сразу открывалась когда запускаешь Spring MVC проект в IntellijIdea?

256