Как мне запланировать выполнение SQL на более позднем уровне @database? - PullRequest
0 голосов
/ 14 марта 2011

--------- Спецификация ---------
База данных: PostgreSQL
Язык: PHP

--------- Описание---------
Я хочу создать таблицу для хранения журнала транзакций базы данных.Я просто хочу сохранить краткую информацию.

Я думаю, что при интенсивном параллельном выполнении добавление данных (журнал транзакций из всей таблицы) в одну таблицу журнала приведет к снижению производительности.

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

--------- Вопрос ---------
Существуют ли подобные средства в PostgreSQL?ИЛИ Как мне добиться аналогичной функциональности, используя задание PHP-Cron или любой другой метод.Примечание: выполнение при НИЗКОМ давлении на БД необходимо

--------- Заранее спасибо ---------

РЕДАКТИРОВАТЬ:
Определение
Параллельное выполнение при высоком давлении / при интенсивном выполнении : примерно 500 или более запросов в секунду для более чем 10 таблиц одновременно.
НЕТ при высоком давлении : около 50или менее запросов в секунду для менее чем 5 таблиц одновременно.
Таблица журнала транзакций : Если что-либо редактируется / вставляется / удаляется в какую-либо таблицу, его детали должны быть ВСТАВЛЕНЫ в журнал транзакций стол

1 Ответ

1 голос
/ 14 марта 2011

Я думаю, что при интенсивном параллельном выполнении добавление данных (журнал транзакций из всей таблицы) в одну таблицу журнала приведет к снижению производительности.

Не думай. Тестовое задание.
Особенно, когда речь идет о производительности. Проведение преждевременной оптимизации - это плохо.

Пожалуйста, укажите также "интенсивное использование". Сколько вставок в секунду вы ожидаете?

Итак, я подумал о решении, почему бы не добавить SQL для журнала транзакций в очередь, которая будет выполняться автоматически, если нет сильного давления на базу данных

Определить "нет сильного давления"? Как ты узнал?

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

Вы можете переместить данные на отдельный жесткий диск, чтобы это не влияло на ввод-вывод для обычных операций. В общем, скорость вставки ограничена вводом-выводом, так что установите себе быструю систему RAID 10.

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

Но если вы не говорите о чем-то вроде 1000 вставок в секунду, вам, вероятно, не нужно много делать, чтобы это работало (предполагается быстрый жесткий диск / система RAID)

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