
Eugeny
21.03.2018
06:22:32
это если уж совсем надо ин
а так
where existis (select null from out o where o.date = i.date ...

Darafei
21.03.2018
06:25:52

Google

Darafei
21.03.2018
06:26:11
select; синтаксически корректное выражение

Eugeny
21.03.2018
06:26:39

Darafei
21.03.2018
06:27:47
ну у нас и чатик про PG

anton
21.03.2018
06:28:12
Примените к tsvector’у unnest
Это даёт все лексем с позициями, а я ищу позиции именно найденных лексем. Что-то вроде ts_headline, только в виде массива позиций

Denis
21.03.2018
06:32:06

Eugeny
21.03.2018
06:34:27
unnest для ts_vector
any unnest для ts_query

Denis
21.03.2018
06:34:27
Кстати, если использовать rum вместо gin, то можно не держать в таблице tsvector, так как rum не требует recheck. Может, этот вариант будет добрее и не нужно будет раскладывать tsvector, а просто находить нужные кортежи из таблицы?

anton
21.03.2018
06:49:36

Denis
21.03.2018
06:56:31

Mikhail
21.03.2018
07:01:47
<БАБУШКА_MODE>
Меня одного начинает бить мелкая дрожь от вопросов, содержащих словосочетание: "а можно сделать" ? :)
</БАБУШКА_MODE>

Darafei
21.03.2018
07:06:56

Google

Darafei
21.03.2018
07:10:34
а я вчерашний вечер провёл за чтением пейпера про эволюцию, чего и вам желаю
https://arxiv.org/pdf/1803.03453v1.pdf
там много примеров про то, что бывает, если забыть дописать все условия в where

Аггей
21.03.2018
07:24:59

Mike Chuguniy
21.03.2018
08:01:36

Аггей
21.03.2018
08:02:07
Зато запоминается с 1й попытки )

Hetag
21.03.2018
08:02:23
Привет всем есть люди которые работали с вк api

Mikhail
21.03.2018
08:04:13
1800 человек в чате
ААААА

Hetag
21.03.2018
08:06:55
??

Mikhail
21.03.2018
09:09:49
Коллеги, занимаюсь секционированием забиксовых таблиц
и вот что придумал
разбить history по месяцам
через наследование и check по месяцу от unixtime
в связи с чем вопрос
сильно будет тупить добавление в таблицу при check месяц(дата(unixtime)) ?
или... надо посмотреть есть ли функция, получающая месяц от unixtime!

Darafei
21.03.2018
09:17:00
тебе нужен настоящий месяц или месяцеподобный интервал?
можно просто порезать по 86400*365/12=2628000 секунд

Mikhail
21.03.2018
09:20:13
Мне нужно разнести в разные таблы данные с юникстаймом по месяцам

Yaroslav
21.03.2018
09:38:45

Аггей
21.03.2018
09:39:31

Google

Аггей
21.03.2018
09:39:53
Я выше писал - норм по itemid
Вы соберите в badger запросы - поймёте, что даты вам ничем не помогут

Mikhail
21.03.2018
09:41:30

Аггей
21.03.2018
09:41:53
Точнее в history обычно хранится меньше месяца
Старые данные в trends

Mikhail
21.03.2018
09:42:26
и их тоже

Yaroslav
21.03.2018
09:42:27

Mikhail
21.03.2018
09:43:17
т.е. вы уверены что разбиение жирных таблиц на сегменты не прибавит производительности забиксу? ваши предложения?

Петр
21.03.2018
09:43:53
эти 4 варианта не понравились?
https://www.zabbix.org/wiki/Main_Page

Mikhail
21.03.2018
09:45:33
хорошая ссылка
а по конкретнее?

Yaroslav
21.03.2018
09:45:57

Mikhail
21.03.2018
09:46:35
это общая фраза

Sergey
21.03.2018
09:46:49

Mikhail
21.03.2018
09:46:53
а вот документация postgrespro говорит об обратном

Artyem
21.03.2018
09:47:00

Mikhail
21.03.2018
09:47:14
в ПГ тоже прибавляет

Петр
21.03.2018
09:47:41
что вам поконкретнее надо? гляньте 4 варианта партицирования может что-то подойдет вам, хотя бы https://www.zabbix.org/wiki/Docs/howto/zabbix2_postgresql_autopartitioning

Mikhail
21.03.2018
09:47:47
просто не хочу тупо по хуту делать, а с осознанием предмета

Yaroslav
21.03.2018
09:47:47

Google

Yaroslav
21.03.2018
09:48:22

Mikhail
21.03.2018
09:48:36
я верю документации ;)
например вот https://postgrespro.ru/docs/postgrespro/9.6/ddl-partitioning

Sergey
21.03.2018
09:49:56

Mikhail
21.03.2018
09:50:52
речь не про ваши задачи, а о заббиксе =)

Аггей
21.03.2018
09:51:56

Yaroslav
21.03.2018
09:52:36
я верю документации ;)
В документации много чего написано... "интересного". ;)
Вот цитата оттуда, кстати:
"Секционирование может сыграть роль ведущих столбцов в индексах"
И на этом, по большому счёту, всё.
Т.е. многие случаи ускорения связаны с seqscan-ами и т.п.

Аггей
21.03.2018
09:53:20
Нагрузка точнее - та же - но растянута во времени. Что повышает отзывчивость вэб интерфейса до 20 раз

Петр
21.03.2018
09:54:07

Аггей
21.03.2018
09:54:35

Петр
21.03.2018
09:54:57
Хранить партиции за год

Аггей
21.03.2018
09:55:17
Это 1 или 2 item который будет перебирать все партиции
Петр, я пробовал по времени
Пылесоса это не отменяет

Петр
21.03.2018
09:56:27
Я бы вообще от него избавился, вся нагрузка от него

Аггей
21.03.2018
09:56:40
Потому, что housekeeper все равно чистит

Mikhail
21.03.2018
09:57:00
Т.е. я рою в правильном направлении

Google

Аггей
21.03.2018
09:57:49
Михаил, раз вам все равно рыть. Давайте сделаем замеры?

Mikhail
21.03.2018
09:59:00

Аггей
21.03.2018
09:59:52
Сначала без секционирования график за пару дней. Потом разбейте по времени (но я бы на вашем месте поглядел свойства элементов данных. Там есть время хранения значения и время хранения изменений)... Снял график за пару дней. А потом по itemid и тоже снял график
Так сказать ударим практикой по теории

Yaroslav
21.03.2018
10:00:15

Аггей
21.03.2018
10:00:40

Yaroslav
21.03.2018
10:02:06
Диапазон там
Тогда почти одинаково.
А вот контрвопрос:
Что быстрее: планирование запрос по обычной таблице или по 50-и партициям?

Аггей
21.03.2018
10:02:33

Yaroslav
21.03.2018
10:02:59

Аггей
21.03.2018
10:03:15
У pathman патриция выбирается вроде как другим способом

Mikhail
21.03.2018
10:04:10

Yaroslav
21.03.2018
10:05:50

Аггей
21.03.2018
10:06:50
Фактически задача разбивается на 2 - выбор секции и планирование запроса по 1 секции

Mikhail
21.03.2018
10:07:26
или по нескольким секциям...

Artyem
21.03.2018
10:13:14
дропать данные партициями кстати тоже быстрее, чем удалять строки по условию, что важно для заббикса (но это не стандартный режим работы будет и придётся делать руками)

Mikhail
21.03.2018
10:14:11
а дропать по условию из меньшей по размеру таблицы? имхо это тоже быстрее :)

Yaroslav
21.03.2018
10:14:53

Konstantin
21.03.2018
10:14:58
Партицирование может дать выигрыш если
а) большинство запросов локальные, т.е. затрагивают тоько один партишин.
б) используются вторичные индексы
Первое вроде очевидно, второе - надо пояснить.
Да, поиск в индексе с 10 млн записей быстрее чем поиск в индексе с 100млн. записей. Но не в 10 раз а в log(10). Тка что, если запросы делаются воссновном по какому-то относительно недавнему диапазаону времени, то эффекта от партицирования почти не будет. Но вот если задействованы вторичные индекы, по которым данные не упорядочены, и глобальный индекс целиком не влезает в память, а индекс на партишин -влезает, то тогда партицирвание может разогнать на порядок.

Mikhail
21.03.2018
10:16:18
вывод - мелко нарезать таблы :)