Что-то прокрастинирую я с написанием удобоваримого массового удаления для Автобуса. Удаления, которое не архивация.
Судя по всему, нам в PHP нужно по-handle'ить только 3 вещи.
- Картинки, если мы картинкоборда;
- Если KU_APC is set, удалить ID постов из APC;
- Обновить страницы тредов с удалёнными постами и удалить страницы удалённых тредов.
Всё остальное, можно в SQL, а именно:
- Для любого удаляемого поста:
- Поставить IS_DELETED и deletedat;
- Удалить из reports таблицы;
- Удалить из message_cache таблицы, если KU_SEARCH включен; - Для тредов, которые обновить, поставить новое lastbumpedat;
- Для тредов, которые удалить, удалить их из watched threads.
Быстрее отдельными общими запросами или курсором? Наверное, сделаю общими запросами. Trigger'ами мало что убрать получится, кажется, так что, наверное, без них.