У меня есть сценарий MySQL, который принимает запрос к базе данных и обрезает определенное количество строк в зависимости от некоторых настроек. Так что, если у меня есть пользователь с подпиской 100 000 вещей, и пользователь загружает 110 000, сценарий отключает последние 10000.
Вот скрипт MySQL:
DELETE FROM `my_table`
WHERE id <= (
SELECT id
FROM (
SELECT id
FROM `my_table`
WHERE some_id = $this->id
ORDER BY id DESC
LIMIT 1 OFFSET $max
) sp
Где максимум 100 000
Что удалит все лишнее, с тех пор я начал реализовывать Elastic Search, и я собираюсь повторить эту функциональность, но я не знаю, с чего начать, потому что я пока не очень разбираюсь в этом программном обеспечении.
Я смотрел на метод deleteByQuery в PHP API, но я не вижу ничего о смещениях или что-то подобное.
Может ли кто-нибудь указать мне правильное направление?
Попробуйте это, он удалит лишние записи
DELETE FROM my_table WHERE id IN (
SELECT id
WHERE some_id = $this->id
ORDER BY id ASC
LIMIT $maxRecordsAllowed, $countHowManyToDelete
)
Других решений пока нет …