Размер таблицы в MySql не уменьшается при очистке значений. Как быть?

177
17 июля 2018, 11:10

Есть таблица, в которой хранится информация по email рассылке для каждого пользователя (тема письма, текст письма, статус отправки и т.д.). В таблицу добавляется около 30 000 записей в день. Это увеличивает таблицу на 300 Мб в день.

Для того чтобы уменьшить размер таблицы, я очищаю поле "текст письма" для всех записей со статусом "отправлено". Размер в этом случае должен уменьшиться в разы. Но этого не происходит. Размер таблицы остался прежним.

Почему так происходит? Как уменьшить размер таблицы при очистке полей?

Тип таблицы — Innodb.

PS. Просьба не писать сообщения, наподобие "таблицу организовать лучше по другому" и тому подобные сообщения. Вопрос состоит в другом, а именно — как уменьшить размер таблицы, очищая поля записей?

Answer 1

Помогла команда OPTIMIZE TABLE tableName

Answer 2
  • Делаем бакап БД
  • удаляем БД
  • останавливаем mysql
  • в my.cnf удаляем innodb_data_file_path и добавляем параметр innodb_file_per_table
  • восстанавливаем БД

После этого каждая таблица БД будет в отдельно файле, а команда optimize table будет уменьшать размер.

READ ALSO
Как добавить текст после ссылки в HTML

Как добавить текст после ссылки в HTML

Мне нужно, чтобы после того, как кто-нибудь, например, написал цифру 20, она добавилась к ссылке

239
Отображение текста в Textarea с конца

Отображение текста в Textarea с конца

Нужно сделать textarea так, чтобы сначала отображался текст, который находится в самом конце, а потом чтобы уже самому можно было пролистать вверх

185
Слик слайдер! Как растянуть слайдер на весь див, сделать его адаптивным!

Слик слайдер! Как растянуть слайдер на весь див, сделать его адаптивным!

Подскажите каким образом я могу растянуть слайдер на весь див заданный для слайдера, никак не получается! Так же не могу сделать его адаптивным,...

585
Выделить элементы карусели

Выделить элементы карусели

На сайте установлена owl-carousel 2Карусель на всю ширину экрана с бесконечной прокруткой

201