2.6.1.3.5. Великий розмір бази даних
Бази даних можуть з часом зростати і бути досить об'ємними, що в майбутньому може призвести до порушення правил надання послуг або заповнення дискового простору. Причин для такої поведінки безліч, починаючи від обраного типу сховища, закінчуючи постійно записуваними даними в БД. У цій статті представлено кілька рекомендацій щодо зменшення місця, яке займають бази даних.
Використання InnoDB
Використання типу сховища InnoDB для таблиць бази даних має як переваги, так і недоліки. У контексті дискового простору основним недоліком InnoDB є те, що розмір таблиць лише збільшується і ніколи не зменшується. Це пов'язано з тим, що при видаленні записів з таблиці місце під ними залишається зарезервованим для нових рядків. Тому видалення даних з таблиці не призводить до зменшення місця, яке займає таблиця на диску.
Способи зменшення розміру:
- Оптимізація таблиць бази даних. Автоматичне оновлення інформації про розмір бази даних відбувається раз на кілька годин, для прискорення натисніть кнопку оновлення інформації про розмір бази даних.
- Перестворення бази даних:
- Експортуйте базу даних.
- Збережіть собі назву та пароль бази даних.
- Видаліть базу даних.
- Створіть базу даних заново з такою ж назвою та паролем, які були у видаленої бази.
- Імпортуйте дамп назад.
Особливості взаємодії сайту та БД
Зберігання сесій у базі даних
Деякі CMS за замовчуванням записують сесії в базу даних, що збільшує навантаження на базу даних, а також може провокувати зростання розміру бази даних через проблеми з видаленням сесій або дуже великою аудиторією сайту. Наполегливо рекомендуємо для зберігання сесій використовувати файли, Memcache(d) або Redis. Якщо все ж необхідно зберігати сесії саме в базі даних — слід перевіряти наявність застарілих сесій, оскільки в деяких ситуаціях відбувається збій і записи в базі даних лише накопичуються, що викликає значне зростання займаного простору.
Запис кешованих даних у базу даних
Існує низка плагінів і систем, які створюють кеш сторінок або елементів сайту та розміщують його в базі даних, що в подальшому може впливати як на продуктивність, так і на розмір бази даних. Якщо на сайті є подібний функціонал — слід уважно ставитися до його використання і для великих проєктів взагалі від нього відмовитися. Кеш краще зберігати у вигляді файлів або використовуючи додаткові, більш продуктивні технології, наприклад Memcache або Redis.