Size: a a a

pgsql – PostgreSQL

2020 May 28

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Victor Yegorov
возникает вопрос: SELECT some_func() — это читающий или пишущий запрос?
Я и говорю, колдовство.
источник

l

lnuynxa in pgsql – PostgreSQL
Victor Yegorov
возникает вопрос: SELECT some_func() — это читающий или пишущий запрос?
я думаю, все подобные подозрительные должны отправляться на мастер
по дефолту
источник

VY

Victor Yegorov in pgsql – PostgreSQL
а если всё на API построено, то RO не скейлится никак 🙁
источник

l

lnuynxa in pgsql – PostgreSQL
Victor Yegorov
а если всё на API построено, то RO не скейлится никак 🙁
так это, ручками отправлять:)
источник

АС

Александр Скобельцын... in pgsql – PostgreSQL
Виталий Кухарик
Кто мне скажет зачем ему мультимастер?
Вы точно понимаете о чем вы говорите?
Кто его знает )) Может и без него неплохо.
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Victor Yegorov
а если всё на API построено, то RO не скейлится никак 🙁
У нас на api пару сервисов. Распределение на стороне приложения, и все ок.
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Виталий Кухарик
У нас на api пару сервисов. Распределение на стороне приложения, и все ок.
ну вот и я к тому, что должно приложение этим заниматься
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
И я об этом
источник

АС

Александр Скобельцын... in pgsql – PostgreSQL
Работал с другими СУБД, все ноды могли писать. Не лез под капот, честно скажу, может и было реализовано оно в тех СУБД похабно, вы ведь на это намекаете?))
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Выше это "предложение для бедных"
источник

AG

Anton Glushakov in pgsql – PostgreSQL
Коллеги, столкнулся с такой проблемой : есть таблица с колонкой comment varchar, по которой построен триграмный GIN индекс (для поиска по маске %%). Так же есть индекс на некий ключ(не уникальный но довольно селективный). При запросе SELECT * FROM TABLE WHERE KEY = XXX AND COMMENT ILIKE '%wazzap%' , ПГ выбирает план из двух BITMAP index scan и операцией AND. Проблемы в том что индекс триграммный гигантский (200ГБ), а ПГ считает, что сходить извлечь из него пару сотен строк это легко, однако в реале это оборачивается в десятки минут. Если просто удалить\отключить GIN индекс, то ПГ просто отбирает значения по первому условию (KEY, пара тысяч строк)- наклдывает фильтр и вуаля. Результат за миллисекунды. Статистика обновлена. Как постгресу сказать что поход в 200ГБ GIN - дорого?
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Александр Скобельцын
Работал с другими СУБД, все ноды могли писать. Не лез под капот, честно скажу, может и было реализовано оно в тех СУБД похабно, вы ведь на это намекаете?))
Для меня важно не потерять данные, и не получить деградацию по записи.
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Anton Glushakov
Коллеги, столкнулся с такой проблемой : есть таблица с колонкой comment varchar, по которой построен триграмный GIN индекс (для поиска по маске %%). Так же есть индекс на некий ключ(не уникальный но довольно селективный). При запросе SELECT * FROM TABLE WHERE KEY = XXX AND COMMENT ILIKE '%wazzap%' , ПГ выбирает план из двух BITMAP index scan и операцией AND. Проблемы в том что индекс триграммный гигантский (200ГБ), а ПГ считает, что сходить извлечь из него пару сотен строк это легко, однако в реале это оборачивается в десятки минут. Если просто удалить\отключить GIN индекс, то ПГ просто отбирает значения по первому условию (KEY, пара тысяч строк)- наклдывает фильтр и вуаля. Результат за миллисекунды. Статистика обновлена. Как постгресу сказать что поход в 200ГБ GIN - дорого?
А добавь поле key в gin индекс?
Или это только rum умеет, не помню уже.
источник

AG

Anton Glushakov in pgsql – PostgreSQL
Виталий Кухарик
А добавь поле key в gin индекс?
Или это только rum умеет, не помню уже.
Не даёт.. Составной с 11 версии вроде.. И не уверен что можно комбинировать btree и gin
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
"довольно селективный" т. Е. По фильтру comments не много отбрасывает?
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Anton Glushakov
Не даёт.. Составной с 11 версии вроде.. И не уверен что можно комбинировать btree и gin
Можно btree_gin_ops или как его.. В доку в общем.
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Виталий Кухарик
"довольно селективный" т. Е. По фильтру comments не много отбрасывает?
Либо подозреваю можно cte по key.
Но я сейчас насоветую...
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Anton Glushakov
Коллеги, столкнулся с такой проблемой : есть таблица с колонкой comment varchar, по которой построен триграмный GIN индекс (для поиска по маске %%). Так же есть индекс на некий ключ(не уникальный но довольно селективный). При запросе SELECT * FROM TABLE WHERE KEY = XXX AND COMMENT ILIKE '%wazzap%' , ПГ выбирает план из двух BITMAP index scan и операцией AND. Проблемы в том что индекс триграммный гигантский (200ГБ), а ПГ считает, что сходить извлечь из него пару сотен строк это легко, однако в реале это оборачивается в десятки минут. Если просто удалить\отключить GIN индекс, то ПГ просто отбирает значения по первому условию (KEY, пара тысяч строк)- наклдывает фильтр и вуаля. Результат за миллисекунды. Статистика обновлена. Как постгресу сказать что поход в 200ГБ GIN - дорого?
А план можете показать?
источник

ВК

Виталий Кухарик... in pgsql – PostgreSQL
Здесь же и без плана видно что болит
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Виталий Кухарик
Здесь же и без плана видно что болит
Мне пока не видно. ;) Может, всё-таки удастся подправить оценки, кто знает...
источник