Size: a a a

pgsql – PostgreSQL

2020 May 22

P

Petr in pgsql – PostgreSQL
Dimitriy Belokon
что имешь ввиду?
Не... ерунду подумал...
сделай отдельную таблицу и обновляю ее
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
обновление в pg очень дорогое
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
это да(
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
сделайте словарь таких наборов и просто ссылайтесь на него
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
странно , что такая немаленькая база так спроектирована(
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
как было бы лучше сделать?
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
Владимир Яворский
странно , что такая немаленькая база так спроектирована(
я об архитектуре
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
а не поздно?
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
не, эти записи парсятся за пару дней по новой
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
миллиарды?
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
да
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
300кк за 4-5 часов
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
Dimitriy Belokon
вобще, в идеале, такю связь
col1 & col3 везде одинаковые во всех записях,
col2 & col3 так же везде одинаковые

1 , aaa, bbb , 1; <- тут обновили col3, остальные col1 = aaa обновились
2, www, qqq, 2; <- тут обновили col3, остальные col2 = qqq обновились
3, aaa, ttt, 1;
4, rrr, qqq, 2;
col1=aaa - это ключ  к таблице записей значений col3, соответственно и для col2
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
если значения col1 и col2 не пересекаются, то можно использовать 1 словарь
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
в противном случае словарь к каждой col1 и col2
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
т.е.значение col3 берётся из словаря
источник

DB

Dimitriy Belokon in pgsql – PostgreSQL
col3 изначально не известен, он определяется после того как все пропарсится
связь такая, что
col1 & col2 между собой уникальны, не повторяются.
но col1 & col3 могут иметь между собой только одно и то же значение, как и col2 & col3
источник

ВЯ

Владимир Яворский... in pgsql – PostgreSQL
по ключу col1
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Boris
На данный момент приходится обходить проблему таким образом:
replace(replace(encode(SOMETHING, 'base64'), '+', '-'), '/', '_')
создайте свою plsql ф-цию, скорее всего такой же ответ получите в pgsql-hackers (куда и следует написать своё предложение)
и да, вам сразу предложат написать патч, реализующий такую ф-цию — в таком виде у фичи больше шансов быть принятой
источник

VY

Victor Yegorov in pgsql – PostgreSQL
Роман Жарков
Сколько угодно!

test=# begin;
BEGIN
test=# alter table a drop constraint ac;
ALTER TABLE
test=# alter table b drop constraint da;
ALTER TABLE
test=# alter table a set unlogged;
ALTER TABLE
test=# alter table b set unlogged;
ALTER TABLE
test=# alter table a add constraint ac foreign key ( b ) REFERENCES b ( c );
ALTER TABLE
test=# alter table b add constraint da foreign key ( d ) REFERENCES a ( a );
ALTER TABLE
test=# commit;
COMMIT
test=#
создание `CONSTRAINT`-ов на больших таблицах может занять значительное время.
я бы в транзакции (в вашем примере) сделал бы
… ADD CONSTRAINT … NOT VALID;
а потом, уже вне транзакции сделал бы для каждого из 2-х констрейнтов
ALTER TABLE a VALIDATE CONSTRAINT ac;
источник