Size: a a a

pgsql – PostgreSQL

2021 July 01

S

Serj in pgsql – PostgreSQL
это на уровне бд делается, верно? если да, то печаль
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
секционирование да. параллелить по секциям можно наверное чем вам нравится
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
а вы на чём обработку пишете-то?
источник

S

Serj in pgsql – PostgreSQL
бизнес-логика на go
источник

S

Serj in pgsql – PostgreSQL
эх, спасибо. тогда пойду выбивать их инженеров секционирование
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
А ведь это, скорее всего, не поможет — только время зря потратите.
Впрочем, дело Ваше...
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
они вам будут задавать кучу вопросов например по какому ключу делать секционирование. по-моему вы недостаточно изучили проблему
источник

S

Serj in pgsql – PostgreSQL
к сожалению, не глубоко изучил проблему) признаю
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
если у вас выборка идет скажем 10 минут. а потом обрабатывается 2 часа, то вам ничего ускорять и не надо
источник

S

Serj in pgsql – PostgreSQL
у нас из-за таких больших запросов коннекты обрываются. в этом проблема. ресурсы не безграничны. иногда бывает так, что в нашу бд ходят другие сервисы, делают выборку, а в этом время и наши сервисы пытаются выбирать данные.
из-за этого cpu в потолок, i/o тоже, и отваливаются коннекты к бд из-за этого.
pgbouncer, конечно, тут тоже бессилен
источник

SM

Serj Marin in pgsql – PostgreSQL
подскажите плиз, обновлять временную таблицу в цикле через
UPDATE temp set ... WHERE  ... AND ... AND
правильно или есть какой-то более быстры способ ?
источник

S

Serj in pgsql – PostgreSQL
ну и на стейдже база часто ложится при тестировании. поэтому я и начал искать бронзовую пулю)
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
тогда секционирование может помочь, если удастся понять как выбрать ключ секционирования
источник

S

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

AB

Alexey Bulgakov in pgsql – PostgreSQL
размер индекса на 14 млн будет нехилым и он тоже будет читаться с диска. хотя он конечно меньше по размеру чем таблица должен быть
источник

PC

Pavel Chernoskutov in pgsql – PostgreSQL
Тут я склонен согласиться, и я бы все-таки предложил обновлять частями, по скажем 10к товаров выбирая, как предложили выше по id > ... limit 10000
источник

S

Serj in pgsql – PostgreSQL
так всё таки лимит снизит нагрузку?
я как понял из ответа Ярослава, она не даст результата по кушанию ресурсов
источник

C

Che in pgsql – PostgreSQL
Проблема в том как написан сервис на go, pgx (драйвер) сам использует курсоры. Похоже ваши разработчики выжирают данные в память сначала потом их плюют последовательно в кафку. Перепишите на каналы и складывайте каждую полученную строку в канал, а в другой рутине читайте и обрабатывайте. Есть такой шаблон в go pipeline. Это сильно разгрузит БД. Я делал интеграцию с oracle DB и переливал 40 млн записей в postgres сервисом на go. При вашем подходе потребление памяти на сервере го составляло около 10Гб, при пайплайне 300, почувствуйте разницу. Соответственно сервера БД тоже были загружены под самый потолок. Совет - переписывайте обработчик. БД в данном случае ведёт себя так как надо
источник

AB

Alexey Bulgakov in pgsql – PostgreSQL
вы только Сергею пишите, а не мне :)
источник

C

Che in pgsql – PostgreSQL
Ой
источник