Иван Шумов, для начала глянул бы на масштаб бедствия в текущей базе - прогнал бы тест. Есть же реальные данные.
Если там это совсем уж отдельные случаи - просто забил бы.
Если чуть чаще - может костыль бы какой-то прикрутил. Например, искал бы недостающие элементы последовательности отдельным запросом, если таковые встречаются и выкидывал бы лишние. Конечно же, думая, ну нафига удаление делается удалением а не флагом deleted?
И только потом бы стал ковыряться с индексами. Но Ваш подход - правильнее, даже не спорю
Wade2k я бы с фронтенда присылал айдишник последнего коммента в обратку при нажатии кнопки "загрузить еще", чтобы оставаться stateless на стороне сервера.
Если же зачем-то (не пойму зачем) нужны эти архаичные переходы с первой страницы сразу на четвертую - вычислял бы айдишники с точностью до погрешности на их удаление относительно текущей страницы