Size: a a a

pgsql – PostgreSQL

2020 August 18

S

Sergey in pgsql – PostgreSQL
ощущение что постгря не видит мои новые индексы
источник

S

Sergey in pgsql – PostgreSQL
перезапустил контейнер, заработало 🤷‍♂️
источник

S

Sergey in pgsql – PostgreSQL
другое дело
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Так это же другой запрос :) (на том же запросе проверьте)
источник

S

Sergey in pgsql – PostgreSQL
Sergey
он же
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Sergey
ощущение что постгря не видит мои новые индексы
А, ок. Я с вот этим сравнивал.
источник

AK

Alex Konstantinov in pgsql – PostgreSQL
Sergey
он же
Условия фильтров разные
источник

S

Sergey in pgsql – PostgreSQL
Alex Konstantinov
Условия фильтров разные
у меня уже конечно 3ий час ночи, но разницы я не ыижу)
источник

AK

Alex Konstantinov in pgsql – PostgreSQL
Sergey
у меня уже конечно 3ий час ночи, но разницы я не ыижу)
В одном у вас просто send_at > 999999, как я понял, с учетом того, что индекс по части таблицы (deleted_at, created_at). Там индекс не используется, что вполне может быть ок.
Далее вы говорите, что перезапустили контейнер и выполняете запрос с условиями индекса deleted_at, created_at, и send_at > 1

Это совершенно разные запросы для этого индекса.
источник

S

Sergey in pgsql – PostgreSQL
Sergey
вот я выполнял ранее аналогичный запрос с тремя условиями
источник

S

Sergey in pgsql – PostgreSQL
изначально с ним у меня проблема и возникла, все остальное - это уже проверки чтобы докопаться до истины
источник

AK

Alex Konstantinov in pgsql – PostgreSQL
Мне кажется, вам уже ответили, у вас скорее всего была неактуальная статистика/неподходящие конфиги постгри/неактуальная статистика + неподходящие конфиги постгри, на основе которых пг, высчитывая, как лучше получить результат, принял решение о том, что лучше сканировать всю табличку.
источник

S

Sergey in pgsql – PostgreSQL
Alex Konstantinov
Мне кажется, вам уже ответили, у вас скорее всего была неактуальная статистика/неподходящие конфиги постгри/неактуальная статистика + неподходящие конфиги постгри, на основе которых пг, высчитывая, как лучше получить результат, принял решение о том, что лучше сканировать всю табличку.
статистику я перестраивал командой analyze и vacuum analyze, других вариантов не знаю.. в конфиги не лазил, если знаете в каком направлениии рыть в конфигам, подскажите, буду благодарен
источник

AK

Alex Konstantinov in pgsql – PostgreSQL
Sergey
статистику я перестраивал командой analyze и vacuum analyze, других вариантов не знаю.. в конфиги не лазил, если знаете в каком направлениии рыть в конфигам, подскажите, буду благодарен
источник

AK

Alex Konstantinov in pgsql – PostgreSQL
Sergey
статистику я перестраивал командой analyze и vacuum analyze, других вариантов не знаю.. в конфиги не лазил, если знаете в каком направлениии рыть в конфигам, подскажите, буду благодарен
Вы же недавно выполнили запрос и все у вас сработало?
источник

S

Sergey in pgsql – PostgreSQL
Alex Konstantinov
Вы же недавно выполнили запрос и все у вас сработало?
да, перезапустил докер контейнер с postgresql
источник

М

Максим in pgsql – PostgreSQL
Ребята, как правильно сделать апдейт выборки по условию
суть - выбрать рандомные записи в большой таблице. Использую этот подход с простор интернета, работает гарааааздо быстрее random()
Но вот как работать с данными пока не понял... Как их проапдейтить, или вставить в временную табилцу…

WITH params AS (
   SELECT 1       AS min_id           -- minimum id <= current min id
        , 12005000 AS id_span          -- rounded up. (max_id - min_id + buffer)
   )
SELECT *
FROM  (
   SELECT p.min_id + trunc(random() * p.id_span)::integer AS id
   FROM   params p
         ,generate_series(1, 101000) g  -- 1000 + buffer
   GROUP  BY 1                        -- trim duplicates
   ) r
JOIN   ivr.livenumbers USING (id)
where flag1 is null
LIMIT  100000
источник

MM

Maksim Milyutin in pgsql – PostgreSQL
Максим
Ребята, как правильно сделать апдейт выборки по условию
суть - выбрать рандомные записи в большой таблице. Использую этот подход с простор интернета, работает гарааааздо быстрее random()
Но вот как работать с данными пока не понял... Как их проапдейтить, или вставить в временную табилцу…

WITH params AS (
   SELECT 1       AS min_id           -- minimum id <= current min id
        , 12005000 AS id_span          -- rounded up. (max_id - min_id + buffer)
   )
SELECT *
FROM  (
   SELECT p.min_id + trunc(random() * p.id_span)::integer AS id
   FROM   params p
         ,generate_series(1, 101000) g  -- 1000 + buffer
   GROUP  BY 1                        -- trim duplicates
   ) r
JOIN   ivr.livenumbers USING (id)
where flag1 is null
LIMIT  100000
можно использовать сэмплирование: select tablesample for update -> update
источник

G

Galv in pgsql – PostgreSQL
Добрый вечер! Наткнулся на следующее умозаключение:
———————————————-
Какие отличия между ограничениями PRIMARY и UNIQUE?
По умолчанию ограничение PRIMARY создает кластерный индекс на столбце, а UNIQUE - некластерный.
———————————————-
Насколько понимаю - это ошибка. Каким это образом юник может создавать некластерный индекс?
источник

S

SergejB in pgsql – PostgreSQL
А что именно из докеризованного postgesql с базой нужно хранить в volumes?
источник