
Terminator
11.10.2018
15:39:37
Александр Юнцевич будет жить. Поприветствуем!

Никита
11.10.2018
16:45:09
Насколько разнится производительность при обновлении значения одного столбца в ряду и обновление нескольких значений в ряду?
Вопрос вытекает из того, как вообще Postgres обновляет данные, перезаписывает целый ряд, либо же отдельные байты

Konstantin
11.10.2018
16:58:38
Посгрес версионник - он при апдейте всегда создаёт новую версию.

Google

Vitaly
11.10.2018
16:59:12
Создаёт новый ряд

Pavel
11.10.2018
17:01:36
никита - так же важно индексированные ли столбцы, и настройки влияющие на heap-only tuple
т.е. новая запись всего ряда будет но производительность зависит от некоторых других условий

Никита
11.10.2018
17:13:48
Спасибо!

Terminator
11.10.2018
17:27:19
Саша Кобра будет жить. Поприветствуем!
@china_china будет жить. Поприветствуем!
Настюшка будет жить. Поприветствуем!

Rostislav
11.10.2018
19:13:32
Жизнерадостно

Dmitry
11.10.2018
19:55:07
скажите, а почему может не использоваться покрывающий индекс в довольно простом случае:
create index on t(a,b,c,d,e);
select a,b,c,d,e from t where a in (сотня значений)

Andrei
11.10.2018
20:06:12
потому что например селективность у вас по полю а совсем никакая

Dmitry
11.10.2018
20:12:33
есть индекс чисто по полю a, и он в этом запросе используется. а так там в среднем 5 строк на уникальное значение ключа
а впрочем analyze помог. правда, ничего не ускорилось :/
Поэтому другой вопрос - почему с покрывающим индексом получилось не быстрее? Explain пишет 7k heap fetches (на 20k записей), на другой машине такая же база и там 0 heap fetches и запрос работает быстро, но там и памяти больше и нагрузка меньше. Может можно что-то подтюнить на первой машине?

Google

pew
12.10.2018
00:29:46
ребят, хочу пргресс квестов писать в наследуемые таблицы группами, сериализованые жсоном. Какой длинны оптимальнее сделать строки

Terminator
12.10.2018
00:30:41
@samofsergey будет жить. Поприветствуем!

Pavel
12.10.2018
04:31:37
SELECT DISTINCT не работает чт ото
нужно сделать выборку и убрать одинаковые ид
GROUP BY помог спс

Ilia
12.10.2018
04:56:34

Pavel
12.10.2018
06:16:07
Cкажите как в SQL дату за сегодня получить ??NOW()

Alexander
12.10.2018
06:17:34
current_date

Darafei
12.10.2018
06:17:56
которое именно сегодня, начало транзакции? :)
но вообще в этом вопросе содержится ответ

Alexander
12.10.2018
06:22:02
now()::date ))
мне кажется ключевое слово в вопросе - дата

Terminator
12.10.2018
07:19:07
@dmitry_dev будет жить. Поприветствуем!

Pavel
12.10.2018
08:43:14
NOW() помогло)
awards.starts_at < NOW() AND awards.ends_at > NOW()
так вообще норм писать?

Алексей
12.10.2018
08:48:39
Если дату надо, то лучше так: NOW()::DATE NOT BETWEEN awards.starts_at::DATE AND awards.ends_at::DATE
но, вообще без разницы

Mike Chuguniy
12.10.2018
08:50:50
но, вообще без разницы
Когда есть индексы и выборка по условию существенно уменьшает объёмы получаемых данных, то приведение типов обеспечит секскан против индексскана. Совсем без разницы, да. Особенно на больших табличках.

Google

Alexander
12.10.2018
08:51:00
к тому же битвин включает края, а в изначальном запросе они исключены

Алексей
12.10.2018
08:52:48
Ты прав, мне показалось, что там исключающий был запрос, выборка вне диапазона
К тому же про индексы там ничего не уточнялось. Может там имеются индексы и для даты, кроме таймштампа?

Darafei
12.10.2018
09:16:56

Artyem
12.10.2018
09:22:56
ещё и часовые пояса прикрутить можно, чтоб жизнь мёдом не казалась

Pavel
12.10.2018
09:23:53
индексов нету , часовык пояса не нужны))
SELECT table1.field1 table2.field2 FROM table1 LEFT JOIN table2 ON table1.id = table2.id
не выводится table2.field2

Алексей
12.10.2018
09:26:19
может он NULL?

Artyem
12.10.2018
09:26:55

Алексей
12.10.2018
09:27:00
или из-за того, что запятой нет. Такие вопросы сложные .)

Pavel
12.10.2018
09:27:11
это пример
щас реальный запрос скину

Никита
12.10.2018
09:44:20
В Postgres есть аналог легковесных транзакций Cassandra?
Если нет, то как их можно симулировать?

Vitaly
12.10.2018
09:45:51
Что значит легковесные? Запись только на 1 сервер?

Pavel
12.10.2018
09:46:41
https://dbfiddle.uk/?rdbms=postgres_10&fiddle=e3fad72b446f372fb1caddbd414c9c92

Vitaly
12.10.2018
09:50:25

Алексей
12.10.2018
09:54:23
https://dbfiddle.uk/?rdbms=postgres_10&fiddle=e3fad72b446f372fb1caddbd414c9c92
А GROUP BY там зачем? Просто, в том виде что сейчас есть, без GROUP BY все работает
SELECT awards.id, awards.title, awards.starts_at, awards.ends_at, statuses.vk_id-- ВОТ ЭТО ПОЛЕ НАДО ВЫВЕСТИ
FROM awards
LEFT JOIN statuses ON statuses.award_id = awards.id
WHERE statuses.vk_id = 96676430 AND
awards.starts_at < NOW() AND awards.ends_at > NOW()
ORDER BY awards.id;

Google

Pavel
12.10.2018
09:59:50


Алексей
12.10.2018
10:00:52
И да, вопросов больше чем ответов. В таблице awards starts_at DATE, ends_at DATE типы DATE. Но при инсерте делается '2018-08-08 19:22:00.000', '2018-11-08 19:22:00.000'. Зачем?
Кроме того, возможно, если я правильно понял смысл, то все же, лучше, использовать в выборке периода >= и <= (или BETWEEN0, иначе на границах дата не попадет
И в этом случае, еще, лучше уточнять, что NOW() - это дата

Pavel
12.10.2018
10:04:41
странно это всё

Алексей
12.10.2018
10:14:43
Ну там агрегатная функция же. Надо сделать GROUP BY 1,2,3,4,5,6,7
Но проще подсчет вынести в отдельный запрос и уже его результат вычесть

Terminator
12.10.2018
10:23:11
bebebe ko будет жить. Поприветствуем!

bebebe
12.10.2018
10:24:18
коллеги, если это тут не оффтопик, а кто-нибудь решал такую задачу:
есть табличка в psql куда льется insert'ы 2k/min, нужно как можно быстрее (лучше в реалтайме) транслировать эти данные в elastic
есть несколько вариантов как это сделать, мне хотелось бы узнать был ли у кого такой опыт?
из условий, схему клиента который данных извергает менять нельзя, он условно умеет только в psql
Был ли у кого похожий опыт? Пока склоняюсь к тригерру

Maxim ??
12.10.2018
10:29:09
имхо костылями разве что

Вадим
12.10.2018
10:34:33

bebebe
12.10.2018
10:36:15

Dmitry
12.10.2018
10:39:32

Terminator
12.10.2018
10:41:36
@worldsviewers будет жить. Поприветствуем!

Никита
12.10.2018
10:41:50
Что скажете об использовании UUID как primary key вместо bigserial?

Вадим
12.10.2018
10:42:33

Никита
12.10.2018
10:42:41
Кроме размера uuid, есть ли еще какие то проблемы с его использванием?

Anton [Mgn, az09@osm]
12.10.2018
10:43:04

Google

Oleg
12.10.2018
10:43:05
индийский ритуал "нахуа"

Никита
12.10.2018
10:43:31

Anton [Mgn, az09@osm]
12.10.2018
10:43:41

bebebe
12.10.2018
10:43:43

Никита
12.10.2018
10:44:02
Я вот много инфы порыл в интернетах, но ничего конкретного я не нашел. Хотелось бы услышать опыт в бою, так сказать