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

Всем привет. Есть запрос.. он хорошо работает до 10000 строк

в таблице.. на 100000 работает плохо. Как переделать под курсори? Я ще учусь буду рад помощи

11 ответов

11 просмотров

А при чём тут / чем поможет "переделать под курсори"? Если же хотите помощи с оптимизацией запроса — https://t.me/pgsql/288632

Oleksii-Miuskyi Автор вопроса
Yaroslav Schekin
А при чём тут / чем поможет "переделать под курсор...

Мне нужно реализовать пагинацию по таблице, понимаю что запрос говно. Потому хочу чтоб подсказали в каком направление двигаться, так как учусь

Oleksii Miuskyi
Мне нужно реализовать пагинацию по таблице, понима...

Но в этом запросе даже следов pagination нет... и при чём тут JSON, в таком случае? И да, насчёт pagination в принципе: https://use-the-index-luke.com/no-offset

Oleksii-Miuskyi Автор вопроса
Yaroslav Schekin
Но в этом запросе даже следов pagination нет... и ...

Ну на беке я буду передавать limit offset и хочу получить данние в json. Не дописал вконце лимит оффсет. Спасибо за ссилку

Oleksii Miuskyi
Ну на беке я буду передавать limit offset и хочу ...

"Ненастоящие" запросы нет смысла оптимизировать. Что нужно показать, чтобы Вам помогли с оптимизацией (реального запроса!), я уже писал. И делать это нужно именно на тех данных, где есть проблема, конечно.

Yaroslav Schekin
Но в этом запросе даже следов pagination нет... и ...

Вот казалось бы берём b-tree, добавляем в каждый узел счётчик - кол-во узлов, которое равно сумме кол-ва узлов по всем детям. А у листьев это число равно 1. Далее можно быстро делать offset по такому изменённому дереву. Почему так никто не делает?

Aleksey Stavrov
Вот казалось бы берём b-tree, добавляем в каждый у...

Потому что это никому настолько не нужно. Т.е. отношение затрат и выгод на практике никогда не в пользу такого решения.

Aleksey Stavrov
Вот казалось бы берём b-tree, добавляем в каждый у...

Есть одна маленькая проблемка. Индексы не хранят информации о видимости строк, а значит с offset эти счетчики числа дочерних нод никак не помогут, если только мы не говорим о редком случае таблицы, в которую почти никто не пишет. Вкупе с проблемами, которые выше описали (блокировки при апдейтах вышестоящих нод), овчинка выделки не стоит.

Radist
Есть одна маленькая проблемка. Индексы не хранят и...

В этом случае мог бы помочь кластеризованный индекс (если я правильно это назвал), но в pg нет такого почему-то, только heap.

Aleksey Stavrov
В этом случае мог бы помочь кластеризованный индек...

Кластеризация не поможет идентифицировать неактуальные записи, а лишь даст упорядоченность индекса в соответствии с данными на диске

Виктор Ткаченко
Кластеризация не поможет идентифицировать неактуал...

Не, вы похоже про команду cluster говорите, а я про то, чего нету в pg

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта