SQL Middle EXPLAIN и оптимизация спрашивают часто обновлено

Перепиши OFFSET-пагинацию на keyset

Условие

Каталог листается запросом с OFFSET, и на дальних страницах он тормозит. Последний товар на предыдущей странице: price = 3500, id = 6. Напиши запрос следующей страницы (3 товара) без OFFSET, по ключу последнего показанного товара. Сортировка та же: по цене, при равной цене по id.

Колонки: id, title, price. Порядок строк важен.

SELECT id, title, price
FROM products
ORDER BY price, id
LIMIT 3 OFFSET 5;

Как подойти

Подсказки: 2
  1. Продолжай с ключа последней строки, а не с номера строки.
  2. Сравнение кортежей: (a, b) > (x, y).

Решите в тренажёре

Редактор с автотестами прямо в браузере. Можно решить спокойно, вслух или под таймером, как на собесе.

Термины по теме