Итак, вот что я попробовал до сих пор:
DELETE FROM Log WHERE LogTime < DATE_SUB(NOW(), INTERVAL 30 DAY) ORDER BY ID LIMIT 1000
Я пытаюсь удалить 1000 строк из таблицы Log одновременно, чтобы это можно было сделать контролируемым образом и чтобыНе занимайте все ресурсы сервера MySQL.
Теперь к проблеме.Когда есть тысячи строк для удаления, это работает отлично.Кажется, так как я упорядочиваю по идентификатору, который является первичным ключом auto_increment, он будет начинаться с самого начала и занимать столько, сколько необходимо.Также увеличивается LogTime, поэтому первая строка имеет самую старую временную метку.
Проблема теперь в том, что у меня есть только 999 строк, которые должны быть удалены в соответствии с проверкой LogTime
Есть ли какой-либо способ сказать mysql только удалять, пока не найдет больше совпадений в порядке поиска?