172 похожих чатов

Привет! Верно ли утверждение, что offset с сортировкой по индексу

будет работать быстрее, чем без него?

Везде говорят, что верно, т.к. offset без сортировки будет вынужден пройтись по всем полям таблицы, но я не понимаю зачем

Допустим, есть таблица товаров, на цене висит индекс. При выборке товаров будет выполнен бинарный поиск внутри price_index, а это значит, что внутри индекса товары уже отсортированы

1) Не понимаю, почему offset не может этим "воспользоваться"
2) Не понимаю, почему offsetу важен порядок полей

Грубо говоря, мы говорим базе: "возьми записи начиная с 50-ой", пусть и неотсортированной. Почему нельзя просто взять, и взять?

11 ответов

36 просмотров

У тебя таблица в куче?

А4 Одноногое- Автор вопроса

Offset без сортировки не имеет никакого смысла

А4 Одноногое- Автор вопроса
central hardware
Offset без сортировки не имеет никакого смысла

Это понятно, но не ясны детали) Буду очень благодарен, если поможете мои пункты разобрать А то chatgpt уже несколько часов мучаю, у меня путанница в голове 😵‍💫

central hardware
Offset без сортировки не имеет никакого смысла

Он имеет в виду почему в таком случае (если нет order by) Postgresql не может увидеть, что там есть индекс на столбце с ценой и считать, что это и есть сортировка

Dmitriy Sviridov
Он имеет в виду почему в таком случае (если нет or...

Звучит как вещь которая должна сломать 90 процентов постгреса

А4 Одноногое- Автор вопроса

Хорошо, сформулирую вопрос по-другому: почему offset не может взять данные из неотсортированного результата выборки? Я либо тупой, либо чего-то очень очевидного не замечаю... Почему он вынужден идти по всей таблице, когда результат выборки не отсортирован?? 😫

А4 Одноногое
Хорошо, сформулирую вопрос по-другому: почему offs...

так сделайте explain anakyze и посмотрите что происходит

А Вы не читайте там, где "говорят", а пробуйте самостоятельно. EXPLAIN (ANALYZE) SELECT * FROM test_select WHERE a_column > 1000000 OFFSET 10 LIMIT 20; Limit (cost=0.72..1.29 rows=20 width=4) (actual time=0.066..0.076 rows=20 loops=1) -> Index Only Scan using test_select_a_column_idx on test_select (cost=0.43..256312.54 rows=9003206 width=4) (actual time=0.058..0.069 rows=30 loops=1) Index Cond: (a_column > 1000000) Heap Fetches: 0 Вопрос исчерпан, по-моему.

А4 Одноногое- Автор вопроса
Yaroslav Schekin
А Вы не читайте там, где "говорят", а пробуйте сам...

На что здесь стоит обратить внимание? Я пытаюсь выяснить, не что происходит, а почему

А4 Одноногое
На что здесь стоит обратить внимание? Я пытаюсь вы...

Вы видите, что индекс в этой ситуации используется, и никакого "пройтись по всем полям таблицы" в плане нет? Следовательно, посылка Вашего вопроса неверна. Какое ещё "почему" Вас тут может интересовать?! ;)

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта