Как предотвратить запись в журнал только на одну таблицу в PostgreSQL? - PullRequest
7 голосов
/ 01 сентября 2008

Я рассматриваю доставку журналов Write Ahead Logs (WAL) в PostgreSQL для создания базы данных с теплым резервированием. Тем не менее, у меня есть одна таблица в базе данных, которая получает огромное количество INSERT / DELETE каждый день, но меня не волнует защита данных в ней. Мне было интересно: Есть ли способ предотвратить запись какой-либо активности на одной таблице в WAL?

Ответы [ 4 ]

11 голосов
/ 29 октября 2011

Наткнулся на этот старый вопрос, на который теперь есть лучший ответ. Postgres 9.1 представил «Unlogged Tables», которые представляют собой таблицы, которые не регистрируют свои изменения DML в WAL. См. Документы для получения дополнительной информации, но, по крайней мере, сейчас есть решение этой проблемы.

См. Ожидание 9.1 - НЕЗАКОННЫЕ таблицы от depesz и 9.1 документов .

4 голосов
/ 02 сентября 2008

К сожалению, я не верю, что есть. Ведение журнала WAL работает на уровне страницы, который намного ниже уровня таблицы и даже не знает, на какой странице хранятся данные из какой таблицы. На самом деле, файлы WAL даже не знают, какие страницы принадлежат какой базе данных .

Возможно, вы захотите перенести вашу таблицу высокой активности на совершенно другой экземпляр PostgreSQL. Это кажется радикальным, но я не могу придумать другого пути, чтобы избежать появления этой активности в ваших файлах WAL.

0 голосов
/ 03 мая 2009

Я бы рассмотрел memcached для таких вариантов использования, как этот. Вы даже можете распределить нагрузку на несколько дешевых машин.

0 голосов
/ 03 сентября 2008

Чтобы предложить один вариант на мой вопрос. Существуют временные таблицы - «временные таблицы автоматически удаляются в конце сеанса или, возможно, в конце текущей транзакции (см. ON COMMIT ниже)», - которые, я думаю, не генерируют WAL. Тем не менее, это не может быть идеальным, так как создание и дизайн таблицы должны быть в коде.

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