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

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

OFFSET, Илья прав

34 ответов

26 просмотров

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 не поменяется, хе-хе.

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта