
Mikhail
30.07.2018
14:42:53
хм
а тут бан по маске не канает?

ко?TEXHIK
30.07.2018
14:43:53
да он меняет небось куски. уже были идеи сделать по длине. пока чёт не вижу этого такого бота

Денис
30.07.2018
14:50:46
@bondarden посмотрите, какие локали у вас в системах установлены и там, и там, locale -a
Привел два сервера к идентичному состоянию. На обоих в locale -a есть одна и та же локаль ru_RU.utf8
На обоих серверах создал одну и ту же базу данных командой:
createdb -e -E "UTF-8" -l "ru_RU.UTF-8" -T template0 test
Затем подключился к этой базе и создал там коллате
CREATE COLLATION numeric (provider = icu, locale = 'uni-u-kn-true');
В итоге результат проверки разный :(
SELECT '2' < '10' COLLATE numeric; == false
Что еще смотреть?

Google

Fike
30.07.2018
15:09:29
У нас @Cyberdyne_Systems_bot стоит, он не очень эээ интуитивный, но этих ребят отсеивает. Для работы достаточно было просто добавить его админом с доступом к сообщениям/юзерам.

Dan
30.07.2018
15:11:16

ко?TEXHIK
30.07.2018
15:12:06

Igor
30.07.2018
16:26:26
Привет! Никто не в курсе, Alter Table может выполнять только овнер?

Jim
30.07.2018
16:27:26
либо тот у кого есть права. емнип

Alexander
30.07.2018
16:29:31
Разрослась одна из таблиц, а места на диске не хватает, чтобы сделать vacuum full. Другие таблицы минимального размера. Индексы тоже ужаты. Как схлопнуть файл таблицы не используя vacuum full??

Igor
30.07.2018
16:31:02
либо тот у кого есть права. емнип
права на запись и на чтение я запросто раздаю, а по поводу alter table на стекоферфлоу посоветовали изврат типа
ALTER ROLE user6 NOINHERIT;
GRANT object_owner TO user6;

Jim
30.07.2018
16:32:45
ну вообще вроде бы роли рулят. кмк можно роли раздавать нужнвм юзерам

Igor
30.07.2018
16:35:35
Неужели никто не делал, чтобы ALTER TABLE несколько юзеров могли для одной таблицы делать?

Yukari
30.07.2018
16:57:45
grant all on table to user?
Да. Лучше ролью.

Vladimir
30.07.2018
17:00:17

Google

Vladimir
30.07.2018
17:00:31

mb
30.07.2018
17:01:11

Alexander
30.07.2018
17:03:03
pg_repack
Спасибо! Но он требует столько же места, сколько занимает таблица. А его нет совсем. Копаю в эту сторону - https://github.com/dataegret/pgcompacttable

Yukari
30.07.2018
17:03:27

Igor
30.07.2018
17:08:33
По-моему оптимальней будет всем одну роль присвоить ALTER USER user SET ROLE rw;
сейчас проверил, разные юзеры могут с одной таблицей работать

Vladimir
30.07.2018
17:17:21

Igor
30.07.2018
17:19:48
у роли есть права на изменение схемы С и U
соответвенно после этой команды, вледельцем будет уже роль

Konstantin
30.07.2018
17:57:07
как эти боты достали(

ко?TEXHIK
30.07.2018
17:59:53

Alexandr
30.07.2018
18:46:58
Не надо админов доставать ;-) Они PG занимаются ;-)

Sergey
30.07.2018
19:06:55
А существует ли какие-нибудь шаблоны проектирования для проектирования схем БД?

Yaroslav
30.07.2018
19:08:48

Alexandr
30.07.2018
19:16:11
Нормальные формы ;)

Sergey
30.07.2018
19:18:11
В смысле?
Например, есть сущность группа, есть сущность юзер, есть сущность задачи, которые принадлежат и группе и юзеру, внутри группы у юзеров различные роли. По сути задачи это в некоторым смысле ресурсы группы. Ресурсы можно расшарить между другими группами/юзерами. Какие-нибудь подходы к проектированию подобного рода бд

Yaroslav
30.07.2018
19:19:16

Sergey
30.07.2018
19:19:50

Yaroslav
30.07.2018
19:21:06
Ну мб хватает
Ну так попробуйте... кстати, нормализации не всегда хватает в подобных задачах, но с неё стоит начинать.

Sergey
30.07.2018
19:26:44
Но вообще, а что если ряд сущностей имеют часть одинаковых полей. Например, сущность TextNews:
- title
- description
PromotionNews:
- title
- description
- promotion_id
- image
VideoNews:
- title
- desctiption
- video
И в таком духе

Google

Sergey
30.07.2018
19:30:07
И при этом бэкенд должен отдавать список всех типов новостей. Я конечно, понимаю, что нормализация творит чудеса, но на самом деле кроме создания трёх таблиц мне ничего лучше не предложили

Yaroslav
30.07.2018
19:33:37

Sergey
30.07.2018
19:45:28

Andrei
30.07.2018
19:45:34
Тут вообще можно одной обойтись
С енумом и jsonb

Sergey
30.07.2018
19:46:17
Например, если поиск нужен

Andrei
30.07.2018
19:46:34
И?
Тайтл и боди в отдельные поля с фулл текст серчем
Всю лишнюю мишуру в jsonb
Который отлично индексируется

Yaroslav
30.07.2018
19:47:46
И?
А я поддержу @bdgwsh — нечего сразу в EAV и его аналоги бросаться (только если уж другого выхода совсем нет).

Yaroslav
30.07.2018
19:49:32
Который отлично индексируется
Не отлично, на самом деле (разве что "поля" вытаскивать в функциональные индексы).
И потом получается "сейчас мы запросто напишем свою СУБД внутри вашей СУБД!". ;)
Короче говоря, это похоже на наследование или же разную классификацию одной и той же сущности.
Используемые схемы зависят от конкретных деталей.

Sergey
30.07.2018
19:53:37

Evgeniy
30.07.2018
19:54:00
больше табличек богу табличек
как насчет сделать по табличке на каждую сущность и успокоиться
придумывают себе гемор на ровном месте

Sergey
30.07.2018
19:54:59
Только бог табличек сломается, если будет на нескольких табличках одновременно сидеть

Google

Andrei
30.07.2018
19:55:09

Yaroslav
30.07.2018
19:55:33

Andrei
30.07.2018
19:56:25
только потом будут добавляться все новые и новые таблички, и поддерживать эту ерунду будет все сложнее

Sergey
30.07.2018
19:56:39

Yaroslav
30.07.2018
19:57:08

Admin
ERROR: S client not available

Andrei
30.07.2018
19:57:57
средствами ОРМ такое процессить - врагу не пожелаешь

Evgeniy
30.07.2018
19:58:23
программировать вообще сложно

Sergey
30.07.2018
19:58:26

Yaroslav
30.07.2018
19:59:41

Andrei
30.07.2018
20:00:39
я стараюсь не совать в JSONb поля, которые отвечают за целостность модели данных

Yaroslav
30.07.2018
20:02:46
Спасибо. У меня орм
Ну, что тут скажешь... что он Вам позволит, то вы и сделаете, наверное.
"ORMs make easy things easier, and hard things impossible". ;)

Andrei
30.07.2018
20:03:04
всякие имеджи и видео в большинстве случаем можно без потерь хранить в джийсонине
т.к. нужны они только на выдаче резалта
меня сейчас переключили на один интересный нагруженный веб-проект
вроде и модель данных ок, и индексы, и в целом перф базы норм, но когда нужно выплевывать статьи или сущности по поиску, с пагинацией - начинается беда

blkmrkt
30.07.2018
20:05:01
да что и говорить, пришлось ОС переустанавливать ?

Andrei
30.07.2018
20:06:09
запилили все через функции, на выход отдаем апликухе джейсонину с резалтом - с производительностью все стало ОК

Google

Andrei
30.07.2018
20:06:28
девы так обрадовались, что теперь все самые сложные места перепиливаем на функции

Yaroslav
30.07.2018
20:06:41

Andrei
30.07.2018
20:06:50
с одной стороны плохо, что мы жестко впилились в постгрес
но у нас нету планов бегать в другие БД, есть несколько HL/HA проектов с базами по 100Tb
с которыми особых проблем не испытываем
я НЕ ХРАНЮ в JSONb атрибуты связей с другими таблицами
если поле мне нужно для целостности данных, то оно будет отедльным полноценным полем

Yaroslav
30.07.2018
20:09:46

Andrei
30.07.2018
20:11:55

S
31.07.2018
00:00:27

blkmrkt
31.07.2018
05:29:07
Вот это да! Возился сутки с медленным поиском, оказалось что нужно было изменить random_page_cost с 4.0 на 2.0.
Теперь он делает bitmap heap scan вместо seq scan на 6TB таблице

Mike Chuguniy
31.07.2018
05:33:02
@blkmrkt а скорость выполнения запроса как изменилась?

blkmrkt
31.07.2018
05:33:35
может еще кеш прогрелся пока я тестил, не знаю