Size: a a a

pgsql – PostgreSQL

2021 February 23

AL

Alexey Lesovsky in pgsql – PostgreSQL
Zheka_13
там 9 строк в таблице
вот я тоже не понимаю из-за чего весь сыр-бор... вот бы там 9M строк было
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Zheka_13
там 9 строк в таблице
и что? может эти 9 строк 100MB занимают? и как увидеть план через просто \timing on ?
источник

Z

Zheka_13 in pgsql – PostgreSQL
Victor Yegorov
и что? может эти 9 строк 100MB занимают? и как увидеть план через просто \timing on ?
там seq скан будет . какой план на 9 строк ?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Victor Yegorov
и что? может эти 9 строк 100MB занимают? и как увидеть план через просто \timing on ?
мм, 100MB при width=37  ?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Alexey Lesovsky
мм, 100MB при width=37  ?
почему нет?
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
а ну там просто explain.. ок
источник

Z

Zheka_13 in pgsql – PostgreSQL
а там 219 строк. ну это все равно мало
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Zheka_13
там seq скан будет . какой план на 9 строк ?
я говорю о том, что в общем случае лучше просить EXPLAIN (analyze, buffer), т.к. это даёт существенно больше информации, чем \timing on
источник

VY

Victor Yegorov in pgsql – PostgreSQL
также, 219 — это кол-во “живых” строк, сколько там всего — мы не знаем
источник

Z

ZHU in pgsql – PostgreSQL
какая настройка отвечает за запрос count ?
источник

VY

Victor Yegorov in pgsql – PostgreSQL
ZHU
какая настройка отвечает за запрос count ?
нет таких настроек
источник

AL

Alexey Lesovsky in pgsql – PostgreSQL
Victor Yegorov
также, 219 — это кол-во “живых” строк, сколько там всего — мы не знаем
и то согласно статистике, а не фактическому выполнению... так что да, надо explain (analyze, buffers)
источник

DO

Do c Tor O r` Ry in pgsql – PostgreSQL
Там сетевая задержка я уверен, из ui запрос шлют
источник

EW

Evgeniy Wolf in pgsql – PostgreSQL
Доброго всем дня! Всех с праздником!

Подскажите пожалуйста, запутался в простейшей задаче... Пытаюсь выбрать из таблицы все строки у которых в целочисленном массиве есть нужное число.

Вот так выглядит простейший запрос:
SELECT * FROM (SELECT ARRAY[1,2,3,4,5] AS arr) AS t1 WHERE t1.arr ... ?

Подскажите пожалуйста, что нужно написать вместо "...", что бы выбрать все строки у которых массив содержит, например цифру "3"
источник

EW

Evgeniy Wolf in pgsql – PostgreSQL
Я нашел решение как выбрать несколько возможных значений:
SELECT * FROM (SELECT ARRAY[1,2,3,4,5] AS arr) AS t1 WHERE t1.arr @> '{3}'

А можно как-то искусственно ограничить кол-во значений до 1шт.? Я помню раньше работало с ANY, но теперь никак не могу понять где ошибка и что с этим вариантом я делаю не так...
источник

Z

Zheka_13 in pgsql – PostgreSQL
проверка вхождения 3 в массив.  SELECT ARRAY[3] <@ ARRAY[1,2,3]
источник

Z

Zheka_13 in pgsql – PostgreSQL
проверка на общие элементы SELECT ARRAY[1,2] && ARRAY[1,2,3]
источник

EW

Evgeniy Wolf in pgsql – PostgreSQL
Zheka_13
проверка на общие элементы SELECT ARRAY[1,2] && ARRAY[1,2,3]
Спасибо большое! Разобрался!
источник

LM

Lina M in pgsql – PostgreSQL
Доброго дня. Продолжаю разбираться с коннектами и нагрузкой на базу. Вчера предлагали изучить yandex odyssey, pdf просмотрел, но, естественно, мне далекому от этого всего человеку, мало что было понятно.
В данный момент переписал один из воркеров так, чтобы использовалась база тогда и только тогда, когда это требуется. Один воркер имеет 50 потоков и пул из 50 подключений к базе. Самая минимальная "машина" (1 процесс 1 поток) обрабатывает ровно 1 операцию в секунду. После изменения количества потоков с 1 до 50, стало, соответственно, 50 о/с.
По графикам нагрузки на базу стабильно висит 200 активных подключений (активно 2 воркера, у каждого воркера 2 процесса по 50 потоков). Вопрос в следующем: использование ОЗУ растёт линейно с течением времени — так и должно быть? Либо что-то не утилизируется? Либо тут это так не работает? Это ведь в конечном итоге приведёт к ООМ, не так ли?
источник

Z

Zheka_13 in pgsql – PostgreSQL
Lina M
Доброго дня. Продолжаю разбираться с коннектами и нагрузкой на базу. Вчера предлагали изучить yandex odyssey, pdf просмотрел, но, естественно, мне далекому от этого всего человеку, мало что было понятно.
В данный момент переписал один из воркеров так, чтобы использовалась база тогда и только тогда, когда это требуется. Один воркер имеет 50 потоков и пул из 50 подключений к базе. Самая минимальная "машина" (1 процесс 1 поток) обрабатывает ровно 1 операцию в секунду. После изменения количества потоков с 1 до 50, стало, соответственно, 50 о/с.
По графикам нагрузки на базу стабильно висит 200 активных подключений (активно 2 воркера, у каждого воркера 2 процесса по 50 потоков). Вопрос в следующем: использование ОЗУ растёт линейно с течением времени — так и должно быть? Либо что-то не утилизируется? Либо тут это так не работает? Это ведь в конечном итоге приведёт к ООМ, не так ли?
а почему не используете pgbouncer?
источник