Встречается на собеседованиях • сегодня

Как реализуешь пагинацию на стороне базы данных

Для пагинации на стороне БД используют LIMIT и OFFSET в SQL-запросах. Например:

sql
SELECT * FROM products 
ORDER BY id 
LIMIT 10 OFFSET 20; -- пропускаем 20 записей, берем 10

Но OFFSET неэффективен на больших данных - чем дальше, тем медленнее. Альтернатива - ключевой метод:

sql
SELECT * FROM products 
WHERE id > 50 -- последний полученный ID
ORDER BY id 
LIMIT 10;

На фронте храним последний загруженный ID или другую уникальную метку. Это быстрее, так как БД использует индексы.

Для реализации в API обычно передают параметры:

  • limit - количество элементов
  • after или before - курсор для пагинации

Пример запроса:
GET /api/products?limit=10&after=50

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы