@pgsql

Страница 218 из 1062
Pavel
15.01.2017
00:58:06
> Хотелось бы чего-то более элегантного. Кота в нарядной шапочке и вжух?

Что может быть более элегантным чем каскадный внешний ключ?

Alex
15.01.2017
01:01:30
что-то типа CREATE TABLE "a" ( "id" serial primary key not null, "b_id" integer not null references "b"("id") on delete cascade ); CREATE TABLE "b" ( "id" serial primary key not null, FOREIGN KEY "b"("id") on delete cascade ); Короче, чтобы без лишних, ненужных полей :)

Pavel
15.01.2017
01:23:00
create table a (id integer primary key); create table b (id integer primary key); alter table a add constraint "a_fkey" foreign key (id) references b(id) on update cascade on delete cascade deferrable initially deferred; alter table b add constraint "b_fkey" foreign key (id) references a(id) on update cascade on delete cascade deferrable initially deferred;

Google
Pavel
15.01.2017
01:23:53
begin; insert into a (id) values (42); insert into b (id) values (42); commit;вот так вставлять

@JWo1F

Shaz
15.01.2017
19:44:27
Не подскажете варианты как использовать elasticksearch для индексации баз в postgres?

Vladimir
15.01.2017
19:54:01
Shaz, у нас отдельный демон, который пишет в эластик новые данные из ПГ

Shaz
15.01.2017
20:02:50
Shaz, у нас отдельный демон, который пишет в эластик новые данные из ПГ
Вы его сами писали? Или его можно найти где-то?

Vladimir
15.01.2017
20:18:52
Сами написали, решенали "на коленке"

Данных немного, поэтому еще раз в 15 минут производим реиндекс на всякий случай

Fike
16.01.2017
00:20:54
если вы бездумно будете гонять данные из базы в эластик один в один, вы нахватаетесь проблем

если там где-нибудь неструктурированные данные с произвольными ключами - там вообще беда будет

Anton
16.01.2017
12:06:54
Коллеги, доброго дня, подскажите как можно реализовать блокировку пользователя после 5ти неудачных входов в систему за определенный период ( к примеру 10 минут ) ?

Anton
16.01.2017
12:08:28
да.. про него же думал, но чего-то из коробочного нет ?

Dmitry
16.01.2017
12:26:23
Google
Sergey
16.01.2017
12:34:03
Использовать PAM?

Тигран
16.01.2017
12:34:22
и в ней же update какой то колонки подсчета входов и т.п.

Anton
16.01.2017
12:35:34
fail2ban как работает мне ясно, с остальным не особо понятно реализация блокирования пользователя после неудачных входов

subj ясен, думал что-то есть чего не знаю, спасибо !

inqfen
16.01.2017
12:44:38
fail2ban как работает мне ясно, с остальным не особо понятно реализация блокирования пользователя после неудачных входов
создается дополнительная цепочка с iptables под jail, где блокируются те, кто туда входит

если ip превысил попытки - добавляется туда

Alex
16.01.2017
13:29:36
Народ, а как сделать связь one-to-many, но так, чтобы как только удалились все зависимые записи, удалялся и сам элемент? Например, у меня есть картинка, юзеры могут пересохранять ее к себе, но как только все ее удалили она должна уйти из БД.

Dmitriy
16.01.2017
13:35:53
разве что триггерами. Подсчитывать количество ссылок на запись в отдельном поле (one), как только станет 0 - удалять запись. При вставке в (many) инкрементить счетчик в (one)

Alex
16.01.2017
14:03:22
Т.е. легче мне будет сделать уже на сервере :)

Еще вопрос: прочитал про массивы в pgsql, круто. Но как настроить, чтобы у меня массив чисел был связан с айдишниками в другой таблице? Типа references?

Alexander
16.01.2017
14:30:00
никак, это было, но выпилили из-за перформанса

Alex
16.01.2017
14:33:26
пытаться обеспечивать консистентность данных на уровне хранимок или приложения

Andrey
16.01.2017
14:35:11
никак, это было, но выпилили из-за перформанса
А можно посмотреть, где это было? Это прямо в мастере было или какой-нибудь Postgres Professional делал?

Kirill
16.01.2017
14:36:33
патч был, но не от постгреспро

некоторой функциональности можно и через check + триггеры добиться, просто оно как бы не всегда и нужно раз уж там массив

Alexander
16.01.2017
14:38:56
да, патч был в 9.2 или 9.3. можно найти в мейлинг листах

Vadim
17.01.2017
07:06:53
патч был, но не от постгреспро
Вот здесь Саша Коротков рассказывал об этом в 2012 году http://profyclub.ru/docs/264

Kirill
17.01.2017
07:33:29
да, если кому интересно то вот описание в блоге 2ndquadrant http://blog.2ndquadrant.com/postgresql-9-3-development-array-element-foreign-keys/

Vladislav
17.01.2017
07:38:15
Вот здесь Саша Коротков рассказывал об этом в 2012 году http://profyclub.ru/docs/264
Все бы хорошо, если бы не одно но... Всем нужны нормализованные данные

Google
Vladislav
17.01.2017
07:39:03
Ну и почему за счет денормализации идет ускорение, я так и не понял, хотя должно быть наоборот

Vladislav
17.01.2017
07:40:54
Yury
17.01.2017
07:41:32
Ну и почему за счет денормализации идет ускорение, я так и не понял, хотя должно быть наоборот
если данные денормализованные то не надо тратить рессурсы системы на связывание данных. Это фундаменттально, а то что выше не читал.

Alex
17.01.2017
07:41:33
правильней говорить все привыкли работать с нормализованными данными

Vladislav
17.01.2017
07:42:08
Это все таки не колоночная бд

Yury
17.01.2017
07:42:52
А то что их читать надо тоннами при этом, расчет не берется?
как правило ты их денормализуешь таким образом каким чаще всего и делаешь выборку...

Alex
17.01.2017
07:42:55
всё зависит от того насколько вы это дермолизуете )

Yury
17.01.2017
07:43:44
это ведь надо не с бухты барахты делать... это конкретный подход который решает конкретную проблемму

но это лучше чем 16 join... если конечно место есть

и write не страшен

нормализация она больше про то, что бы не хранить ничего лишнего (в стародавние времена диски были маленькие). Сейчас это не так остро стоит но надо уже думать о сокрости записи, хотя у многих проектов 5% запись 95% чтение.

Dmitry
17.01.2017
07:47:49
чё?

Yury
17.01.2017
07:48:01
данные == место на диске

нету избыточных данных - лишнее место не занимается

Dmitry
17.01.2017
07:49:01
Юр, представь базу кредитов выдали кредит человеку с паспортом Иванов Иван Иванович, как ты это будешь хранить в денормализованной базе?

Google
Anton [Mgn, az09@osm]
17.01.2017
07:50:09
нету избыточных данных - лишнее место не занимается
актуально кажется только для мобильных устройств сейчас

Yury
17.01.2017
07:51:06
Юр, представь базу кредитов выдали кредит человеку с паспортом Иванов Иван Иванович, как ты это будешь хранить в денормализованной базе?
это тут причём? Никто не говорит что денормализуется всё. (разговор вообще не про это) Ну и вроде тебе нкто не мешает в одну таблицу поместить и паспорт и кредит и всё всё. (matview некую сделать)

давайте лучше пример с лайками. Один лайкнул надо проапдейтить у 1000
вот по этому для этого они не используют РСУБД

Vladislav
17.01.2017
07:52:08
наоборот
Почему наоборот? Только если индекс читать, не много, как только надо вытащить более двух полей, это сразу чтение всех данных

Alex
17.01.2017
07:52:17
вот по этому для этого они не используют РСУБД
Вот поэтому доводилось использовать РСУБД для этого ;)

не считая накладных расходов на work_mem всё работало отлично

Yury
17.01.2017
07:52:44
все понятно, спасибо.
С добрым утром.

не считая накладных расходов на work_mem всё работало отлично
ну это смотря какая нагрузка... у меня то же всё в СУБД.

Alex
17.01.2017
07:53:37
с этим не буду спорить

Dmitry
17.01.2017
07:53:40
ну Юр, ты какую-то шляпу про место несешь. место не причем. задача - избавление от избыточных данных. избыточные данные - лишняя возможность для ошибки.

Yury
17.01.2017
07:53:40
Alex
17.01.2017
07:54:20
в вк в мускуле такое хранят как-то вроде местами

(это к слову о нагрузке)

Dmitry
17.01.2017
07:56:40
что fb что vk - штучные продукты, со своими костылями, что вы под одну гребенку всех зачесываете?

Alex
17.01.2017
07:57:24
не такие уж и штучные, хотя со своми тараканами

Yury
17.01.2017
07:57:44
ну Юр, ты какую-то шляпу про место несешь. место не причем. задача - избавление от избыточных данных. избыточные данные - лишняя возможность для ошибки.
Я всё же остаюсь на своём. Если ты убираешь избыточность данных то ты уменьшаяешь размер той информации что хранишь.

Alex
17.01.2017
07:57:45
в плане субд там всё достаточно традиционно

Google
Mike Chuguniy
17.01.2017
07:59:17
А повышение скорости запросов при денормализации - это такое вот из мыскля приползло несколько-летней давности.

Вадим Ткаченко тогда в мыскльперформансблоге выступил, что для оченно ускорения, денормализация - это очень хорошо и правильно. Я, прочитав тот материал, возрыдал слезами горючими.

Vladislav
17.01.2017
08:00:35
Это повышения формирование таблицы фактов

Вот только таблица фактов в полном виде нужна в редких случаях и обычно там скорость не нужна

Mike Chuguniy
17.01.2017
08:02:24
Я всё же остаюсь на своём. Если ты убираешь избыточность данных то ты уменьшаяешь размер той информации что хранишь.
Кстати. Денормализованная таблица меньше в объеме, чем нормализованные данные. Догадайся, почему.

Fike
17.01.2017
08:03:08
Vladislav
17.01.2017
08:03:28
Anton [Mgn, az09@osm]
17.01.2017
08:03:37
кстати про сложность против "негде запутаться". ОRМ-ы на плоской таблице точно ничего лишнего не придумают. так что в этом точно есть свои плюсы.

Yury
17.01.2017
08:03:39
Вадим Ткаченко тогда в мыскльперформансблоге выступил, что для оченно ускорения, денормализация - это очень хорошо и правильно. Я, прочитав тот материал, возрыдал слезами горючими.
для postgres это то же всё работает, надо просто понимать какие данные ты часто запрашиваешь и как пишешь. Это всегда лучше join.

Ivan
17.01.2017
08:04:07
Кстати. Денормализованная таблица меньше в объеме, чем нормализованные данные. Догадайся, почему.
Я, в целом, глупый парень, но я так понимаю сказывается оверхед на записать строки в таблицу? Кажется, что тут не учитывается что в нормализированным виде во второй табличке будешь меньше записей иначе зачем тогда нормализация, как не для экономии места?

Yury
17.01.2017
08:04:16
При джойна я прочитаю индекс, а не скан всей таблицы
а разница? всё равно надо приличное колличество лишних действий сделать

Fike
17.01.2017
08:04:23
ну Юр, ты какую-то шляпу про место несешь. место не причем. задача - избавление от избыточных данных. избыточные данные - лишняя возможность для ошибки.
если данные распространяются только в одну сторону (грубо говоря, строится тот самый mat.view на основе SSOT), то никаких проблем нет кроме задержек в обновлении вывода

Vladislav
17.01.2017
08:04:42
Fike
17.01.2017
08:05:10
При джойна я прочитаю индекс, а не скан всей таблицы
а потом прочитаешь все данные, которые там лежат

Страница 218 из 1062