Когда удалять старые записи из базы данных MySQL? - PullRequest
0 голосов
/ 17 февраля 2020

Итак, я запускаю этот сайт TYPO3 с почти 80 таблицами. TYPO3 на самом деле не удаляет записи, он только записывает «1» в удаленное поле таблицы, чтобы пометить их. Это приводит к большой таблице с множеством записей, которые не видны в приложении, но должны обрабатываться в каждом запросе к базе данных.

Мой вопрос: до скольких мертвых записей вы должны хранить эти записи, прежде чем столкнуться с недостатками, такими как снижение производительности? Известно ли количество записей независимо от аппаратного обеспечения сервера?

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 17 февраля 2020

TYPO3 имеет включенную задачу для очистки старых / удаленных записей, которая называется:

Сборка мусора таблицы: очищает старые записи из любой таблицы в базе данных. См. https://docs.typo3.org/c/typo3/cms-scheduler/master/en-us/Installation/BaseTasks/Index.html#table -garbage-collection-task

Вы можете решить, какой тип записей должен быть очищен в какой период, зависит от вашего варианта использования и среды вашего сервера.

0 голосов
/ 17 февраля 2020

Это зависит. Если есть хорошие индексы, дополнительные строки могут не сильно повлиять на производительность. Вы видите замедление? (Существует старая поговорка: «Если она не сломана, не чините ее».)

Что-то вроде DELETE FROM t WHERE deleted может быть жизнеспособным способом очистки стола t. Но может возникнуть проблема с FOREIGN KEYs.

Сколько строк в таблицах? Если до DELETE есть миллионы строк, выполнить задачу, не поставив систему на колени, становится сложно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...