2.6.1.3.5. Большой размер базы данных
Базы данных могут со временем расти и быть довольно объёмными, что в будущем может привести к нарушению правил предоставления услуг или заполнению дискового пространства. Причин для такого поведения множество, начиная от выбранного типа хранилища, заканчивая постоянно записываемыми данными в БД. В данной статье представлено несколько рекомендаций по уменьшению места, занимаемого базами данных.
Использование InnoDB
Использование типа хранилища InnoDB для таблиц базы данных имеет как достоинства, так и недостатки. В контексте дискового пространства основным недостатком InnoDB является то, что размер таблиц только растёт и никогда не уменьшается. Это связано с тем, что при удалении записей из таблицы место под ними остаётся зарезервированным для новых строк. Поэтому удаление данных из таблицы не приводит к уменьшению места, которое занимает таблица на диске.
Способы уменьшения размера:
- Оптимизация таблиц базы данных. Автоматическое обновление информации о размере базы данных происходит раз в несколько часов, для ускорения нажмите кнопку обновления информации о размере базы данных.
- Пересоздание базы данных:
- Экспортируйте базу данных.
- Сохраните себе название и пароль базы данных.
- Удалите базу данных.
- Создайте базу данных заново с таким же названием и паролем, какие были у удалённой базы.
- Импортируйте дамп обратно.
Особенности взаимодействия сайта и БД
Хранение сессий в базе данных
Некоторые CMS по умолчанию записывают сессии в базу данных, что увеличивает нагрузку на базу данных, а также может провоцировать рост размера базы данных из-за проблем с удалением сессий или очень большой аудиторией сайта. Настоятельно рекомендуем для хранения сессий использовать файлы, Memcache(d) или Redis. Если всё же необходимо хранение сессий именно в базе данных — следует проверять наличие устаревших сессий, так как в некоторых ситуациях происходит сбой и записи в базе данных только накапливаются, что вызывает большой рост занимаемого пространства.
Запись кешируемых данных в базу данных
Существует ряд плагинов и систем, которые создают кеш страниц или элементов сайта и помещают его в базу данных, что в дальнейшем может сказываться как на производительности, так и на размере базы данных. Если на сайте есть подобный функционал — следует внимательно отнестись к его использованию и для больших проектов вовсе от него отказаться. Кеш лучше хранить в виде файлов или используя дополнительные, более производительные технологии, например Memcache или Redis.