Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Какие проблемы с пагинацией через LIMIT OFFSET?
Пагинация через LIMIT OFFSET может быть неэффективной на больших смещениях, потому что база данных должна пропустить OFFSET строк перед возвратом результата, что требует времени и ресурсов. Кроме того, при изменении данных (добавлении/удалении) между запросами могут возникать пропущенные или дублированные строки.
Что такое курсорная пагинация и чем она лучше OFFSET?
Курсорная пагинация — это метод пагинации, где вместо смещения (OFFSET) используется условие на основе значения последней строки предыдущей страницы (например, WHERE id > last_id). Она лучше OFFSET, потому что работает быстрее (не требует пропуска строк) и обеспечивает согласованность при изменении данных.
Как правильно делать пагинацию в Postgres, чтобы избежать проблемы с OFFSET при больших данных?
OFFSET медленный, потому что Postgres всё равно сканирует строки до смещения. Решение — keyset pagination (по ключу): использовать WHERE id > last_id ORDER BY id LIMIT N.
Что такое offset и как он используется консьюмерами?
Offset — это порядковый номер сообщения внутри партиции. Консьюмеры используют offset, чтобы понимать, какие сообщения уже обработаны. Kafka не хранит «состояние очереди», а полагается на offsets. Каждый consumer group хранит offsets независимо. Благодаря этому сообщения можно перечитывать и обрабатывать повторно.
Что такое offset?
Offset — это порядковый номер сообщения внутри partition’а. Он однозначно идентифицирует позицию сообщения. Consumer использует offset, чтобы понимать, какие сообщения уже прочитаны. Offset увеличивается последовательно. Управление offset’ами позволяет возобновлять чтение после сбоев.
Где хранятся offset’ы consumer-групп?
Что произойдёт, если consumer Kafka упадёт после обработки сообщения, но до коммита offset?
Что делают LIMIT и OFFSET?
Рейтинг:
5
Сложность:
5
Offset’ы consumer-групп хранятся в специальном внутреннем топике Kafka. Этот топик называется __consumer_offsets. Kafka сама управляет его репликацией и надёжностью. Consumer периодически коммитит offset’ы в этот топик. Благодаря этому прогресс чтения сохраняется даже при сбоях.
Рейтинг:
5
Сложность:
6
Сообщение будет считано повторно после перезапуска consumer’а. Это классическое поведение “at least once”, поэтому обработчик должен быть идемпотентным.
Рейтинг:
5
Сложность:
4
LIMIT ограничивает количество возвращаемых строк, а OFFSET пропускает заданное число строк перед началом выборки. Они часто используются для реализации пагинации. Например, LIMIT 10 OFFSET 20 вернет 10 строк, начиная с 21-й. Однако при больших OFFSET производительность может ухудшаться.
Рейтинг:
2
Сложность:
6
Рейтинг:
2
Сложность:
6
Рейтинг:
4
Сложность:
7
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
4