Совокупные представления PostgreSQL - PullRequest
1 голос
/ 02 августа 2010

Полностью ли пересчитываются представления в PostgreSQL при каждом изменении одной из нижележащих таблиц?

Точнее, если у меня будет сводное представление по таблице votes, будет ли необходим полный пересчет представления, когда будут внесены какие-либо изменения в таблицу голосов?

Если я ожидаю частых изменений таблицы votes, каковы альтернативы агрегированному представлению? Мне нужна полилогарифмическая временная сложность простых запросов.

Ответы [ 2 ]

3 голосов
/ 02 августа 2010

Обычные VIEWS в Postgres (и других СУБД, о которых я знаю) на самом деле являются не чем иным, как хранимым оператором SELECT.Он не хранит фактическую информацию в статической таблице - это материализованный VIEW (которого у Postgres в настоящее время нет, и вам придется свернуть свой ).В каком-то смысле он будет «пересчитывать каждый раз», поскольку в нем не хранятся рассчитанные данные.

Проверьте предыдущую ссылку , чтобы узнать, как выполнить материализованное представление, если вы хотите сохранить сложные вычисления.

РЕДАКТИРОВАТЬ: Если, как говорит OMG Ponies, вы говоритеоб ALTER TABLE для базовой таблицы - тогда это легко ... Postgres не позволит вам изменить определение столбца, который использовался в VIEW, без предварительного удаления VIEW.

0 голосов
/ 02 августа 2010

Вы можете использовать материализованные представления PostgreSQL.

Материализованные представления, безусловно, возможны в PostgreSQL. Благодаря мощному языку PL / pgSQL в PostgreSQL и функциональной системе триггеров материализованные представления несколько просты в реализации. Я рассмотрю несколько методов реализации материализованных представлений в PostgreSQL.

текст ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...