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

Это может вам IDE подставляет? вообще подстановка не должна работать в

OFFSET, Илья прав

34 ответов

7 просмотров

rows, err := s.db.QueryContext(ctx, `SELECT * FROM meta_urls OFFSET $1`, 1000) Вот такое :) Из кода вызываю.

Anton Kucherov
rows, err := s.db.QueryContext(ctx, `SELECT * FROM...

Это норм, будет работать. Это просто replacement работает:)

Альберт-Степанцев Автор вопроса
Anton Kucherov
rows, err := s.db.QueryContext(ctx, `SELECT * FROM...

ну это какая-то ORM, хреен знает, что она под капотом делает вы реальные запросы к БД отлаживайте сначала а потом уже в код переносите

Альберт Степанцев
ну это какая-то ORM, хреен знает, что она под капо...

Нет там никакой ORM в pg_stats_activity запрос выглядит абсолютно так же. Да и вопрос не в подстановке или корректности запроса. А в том будет от консистентно данные в одном и том же порядке каждый раз выдавать или нет.

Ilya Anfimov
Delphi?

Go. То что запрос работает я проверил. А вот в консистентности его сомневаюсь. Эксперимент можнт быть просто совпадением. Потому что данных не много и они активно не меняются.

Anton Kucherov
Нет там никакой ORM в pg_stats_activity запрос выг...

заинсертить новые данные и проверить

Альберт-Степанцев Автор вопроса
Oleksandr Danylenko
заинсертить новые данные и проверить

Лучше апдейтнуть. Порядок, без явного указания порядка, не определен. Точка. Аксиома. Обсуждению не подлежит.

Anton Kucherov
Go. То что запрос работает я проверил. А вот в кон...

Про консистентность вам ужэ всё сказали. Да это и так очевидно, на самом деле.

Альберт Степанцев
Лучше апдейтнуть. Порядок, без явного указания пор...

Порядок не определен да, он оно же берет OFFSET по какому то полю. Пускай и неявно, на уровне БД.

Anton Kucherov
Go. То что запрос работает я проверил. А вот в кон...

Проблема в кадрах. Гошников умеющие в СУБД маловато😔

Альберт-Степанцев Автор вопроса
Dmitry M
Проблема в кадрах. Гошников умеющие в СУБД маловат...

Ну видите же - человек стремится. Давайте помогать. » А как определить какие первые? )) Указать ORDER BY Если это не сделать, СУБД вернет вам в таком порядке, который посчитает удобным для себя.

Anton Kucherov
rows, err := s.db.QueryContext(ctx, `SELECT * FROM...

Действительно, сейчас проверил -- с чем-то спутал, видимо. Параметры в LIMIT работают.

Anton Kucherov
Порядок не определен да, он оно же берет OFFSET п...

Оно берёт OFFSET от того, как записи по факту пришли от исполнителя. (А приходить они могут очень по-всякому). (И это сейчас. Вот добавят ещё немного противоестественного интеллекта -- и он сам будет определять, что порядок записей неопределён, и можно отдавать n первых попавшыхся).

Ilya Anfimov
Действительно, сейчас проверил -- с чем-то спутал,...

👍 А почему им не работать? Мы часто пагинированные запросы делаем.

Anatoliy Burov
👍 А почему им не работать? Мы часто пагинированные...

На больших значениях offset начинает конкретно лагать

Dmitriy Sviridov
На больших значениях offset начинает конкретно лаг...

Это не исключает того факта, что туда можно параметризованные данные передавать, а не хардкод😊

Anatoliy Burov
Это не исключает того факта, что туда можно параме...

Ну да. Но в случае выше гошка, там в int строка не пролезет

Dmitriy Sviridov
На больших значениях offset начинает конкретно лаг...

Ага. У меня на таблице с 3 000 000 000 записями оффсет на 1 000 000 000 около 20 минут бежит 🙂

Anton Kucherov
Ага. У меня на таблице с 3 000 000 000 записями оф...

Жесть. Нафига вам такое? У нас бизнес, если через 5 сек данные не получает, уже бубнить начинает😃

Anton Kucherov
Ага. У меня на таблице с 3 000 000 000 записями оф...

А если юзер может дёргать "последние" страницы пагинатора, то проду может внезапно стать плохо

Anatoliy Burov
Жесть. Нафига вам такое? У нас бизнес, если через ...

Ну вообще нам такое не надо. Это я играюсь потому что мне надо большую БД сконвертить в другую схему, без остановки сервера. т.е. обычный pg_dump кажется не подходит. Там еще по пути надо данные в некоторых полях преобразовывать. Так это это я просто дергаю Long Running Task.

Anton Kucherov
Ну вообще нам такое не надо. Это я играюсь потому ...

А чего нельзя WHERE id > N ORDER BY id ASC LIMIT 1000? Тогда скорость выборки будет примерно одинаковой

Anton Kucherov
Ну вообще нам такое не надо. Это я играюсь потому ...

Так переливайте пачками через select...for update skip locked

Dmitriy Sviridov
А чего нельзя WHERE id > N ORDER BY id ASC LIMIT 1...

ID это URL. Текстовое поле 😂 Тока не спрашивайте какого ... Я не придумывал эту таблицу. А тот кто придумал не думал что там будет 3 000 000 000 записей и она будет весить под террабайт

Anton Kucherov
ID это URL. Текстовое поле 😂 Тока не спрашивайте...

Ну по нему, по идее, можно тоже сортировать

Anton Kucherov
ID это URL. Текстовое поле 😂 Тока не спрашивайте...

Ну первичный ключ вполне может быть не числом - это нормально

Dmitriy Sviridov
Ну по нему, по идее, можно тоже сортировать

Отсортировать можно. А как больше (>) применить к строке? Чтобы по 1000 записей выбирало ? Больше последней строки из предидущей пачки? Оно точно так будет работать? Будет просто строки сравнивать побайтово?

Anton Kucherov
Отсортировать можно. А как больше (>) применить к ...

>А как больше (>) применить к строке? Как всегда -- пишэшь > , слева одну строку, справа другую. >Оно точно так будет работать? А куда оно денется? >Будет просто строки сравнивать побайтово? Будет сравнивать в соответствии с указанным collation order. Лучшэ почитать описание строковых операторов postgres, если хотите деталей.

Anton Kucherov
Отсортировать можно. А как больше (>) применить к ...

Более развернуто https://postgrespro.ru/docs/postgresql/14/collation

Dmitry M
Более развернуто https://postgrespro.ru/docs/postg...

С другой стороны, если человек сам по себе порядок не важэн -- то любой сработает. Особенно если на нём pkey (если нет -- то, понятно, могут быть равные строки и просто > ужэ не обойдёшься). Ну, пока опять версия glibc не поменяется, хе-хе.

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

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

Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Hello, good time everyone I use Firebase to implement push notification inside the Flutter application and it works, but I don't receive the notification when the application ...
Iman
1
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Вместо import и library придется писать importlib?
The Bird of Hermes
19
Вот такая неприятность на stable и ea версиях: werf helm --namespace s4c upgrade --install --atomic --timeout 5m --set s4c.version=839185f3 --set s4c.deployEnv=staging -f d...
citius
6
Всем привет! Подскажите, пожалуйста, почему не применяются настройки? Хочу задеплоить вот такой кластер в кубер. apiVersion: rabbitmq.com/v1beta1 kind: RabbitmqCluster metad...
Игорь Самарский
1
вот что получается в интерпрететоре, работает и результаты выгляд разумными, но то как выглядит код мне не нравиться, а понять куда двигаться не очень могу, если кому не лень ...
Fedor
42
Привет! Сталкивался ли кто-нибудь с проблемой: - большой архив создан Archive::Zip - ом - переливается на s3 unzip -Z говорит: error [xxx.zip]: missing 12 bytes in zipfile ...
Sasha Murzin
5
а как с таким борятся ? про термин стак тут мне пока не попадалось ghci> foldr (\(CotMD n ctM _) (mstep,pos) -> if ctM > mstep then (ctM, n) else (mstep, pos)) (0,0) $ take ...
Fedor
13
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
10
Карта сайта