2.6.1.3.5. Большой размер базы данных

Базы данных могут со временем расти и быть довольно объёмными, что в будущем может привести к нарушению правил предоставления услуг или заполнению дискового пространства. Причин для такого поведения множество, начиная от выбранного типа хранилища, заканчивая постоянно записываемыми данными в БД. В данной статье представлено несколько рекомендаций по уменьшению места, занимаемого базами данных.

Использование типа хранилища InnoDB для таблиц базы данных имеет как достоинства, так и недостатки. В контексте дискового пространства основным недостатком InnoDB является то, что размер таблиц только растёт и никогда не уменьшается. Это связано с тем, что при удалении записей из таблицы место под ними остаётся зарезервированным для новых строк. Поэтому удаление данных из таблицы не приводит к уменьшению места, которое занимает таблица на диске.

Способы уменьшения размера:

  • Оптимизация таблиц базы данных. Автоматическое обновление информации о размере базы данных происходит раз в несколько часов, для ускорения нажмите кнопку обновления информации о размере базы данных.
  • Пересоздание базы данных:
    1. Экспортируйте базу данных.
    2. Сохраните себе название и пароль базы данных.
    3. Удалите базу данных.
    4. Создайте базу данных заново с таким же названием и паролем, какие были у удалённой базы.
    5. Импортируйте дамп обратно.

Некоторые CMS по умолчанию записывают сессии в базу данных, что увеличивает нагрузку на базу данных, а также может провоцировать рост размера базы данных из-за проблем с удалением сессий или очень большой аудиторией сайта. Настоятельно рекомендуем для хранения сессий использовать файлы, Memcache(d) или Redis. Если всё же необходимо хранение сессий именно в базе данных — следует проверять наличие устаревших сессий, так как в некоторых ситуациях происходит сбой и записи в базе данных только накапливаются, что вызывает большой рост занимаемого пространства.

Существует ряд плагинов и систем, которые создают кеш страниц или элементов сайта и помещают его в базу данных, что в дальнейшем может сказываться как на производительности, так и на размере базы данных. Если на сайте есть подобный функционал — следует внимательно отнестись к его использованию и для больших проектов вовсе от него отказаться. Кеш лучше хранить в виде файлов или используя дополнительные, более производительные технологии, например Memcache или Redis.

Содержание