Стоит ли чистить MySQL от старых записей (БД 3,6Гб.)?

Сейчас на поддержку попал сайт на битриксе. В таблицах обнаружил много более ненужных записей, особенно волнует таблица с зарегистрированными файлами (b_file) и таблица с корзинами пользователей в т.ч. анонимных.
В таблице с фалами 16 миллионов строк тогда как в реальности файлов ~ 20 000 тысяч. А в таблице с корзинами ~ 3 500 000 строк 80% устарели и являются бесполезным балластом.

Вопрос: стоит ли заморачиватьcя со скриптом для поиска устаревших записей? Как количество строк влияет на скорость выборки?
  • Вопрос задан
  • 784 просмотра
Решения вопроса 3
zo0m
@zo0m
full stack developer
Мусорные записи - конечно лучше чистить, база будет жрать меньше памяти. На скорость выборок непосредственно влиять не должно, если нормально индексы поставлены и запросы по ним ходят.

Для подобных вещей иногда создают отдельную БД в которую "переливают" устаревшие данные. Бонусы: если затрете, что-то важное, потом можно будет выгрузить обратно. Если понадобиться построить репорт по старым данным - вот они под рукой.
Ответ написан
grigruss
@grigruss
Пока не задал ни одного вопроса... только отвечаю.
Чистить базу, на мой взгляд, стоит всегда. Я никогда не видел MySQL такого размера (может потому что с битриксом не работаю), но по базам 1С:Бухгалтерия знаю, что эти ребята пишут так, что базу всегда нужно держать в чистоте. Скорость должна увеличится.
Ответ написан
Комментировать
saboteur_kiev
@saboteur_kiev Куратор тега Системное администрирование
software engineer
Старые данные всегда нужно чистить.
В крайнем случае можно переносить в отдельную таблицу в отдельном неймспейсе и в архив.

Даже если данные не используются, подумайте о нагрузке бэкапа и восстановления - в случае чего, гораздо приятнее быстро восстановить 100 мегабайт актуальных данных, чем 4 гб мусора.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы