2011-03-14 30 views
0

--------- ---------規範
數據庫:PostgreSQL的
語言:PHP如何安排一個SQL執行後@database水平

- -------描述---------
我想創建一個表來存儲數據庫的事務日誌。我只想存儲簡要信息。

我認爲,沉重的併發執行期間(從所有表事務日誌)將數據添加到一個日誌表將成爲性能瓶頸。

於是我想到了一個解決方案,爲什麼不爲事務日誌中的SQL添加到時候有數據庫沒有沉重的壓力,它會自動執行隊列。

---------問題---------
PostgreSQL中是否有類似的工具可用?或者我如何使用PHP-Cron作業或任何其他方法實現類似的功能。注:dB的低壓力在執行過程中是必要的

--------- Thanx提前---------

編輯:
定義
重壓力/繁重的併發執行:同時在10個以上的表上每秒約有500個或更多的查詢。
沒有重壓:同時在少於5個表上每秒約有50個或更少的查詢。
事務日誌表:如果有什麼編輯/插入/刪除到任何表,它的細節都必須在事務日誌

回答

1

我認爲,沉重的併發執行過程中,添加數據(事務日誌INSERTED從所有表格)到單個日誌表格都會遇到瓶頸表現。

不要假設。測試。
特別是當涉及到性能。過早優化是一件壞事。

還請定義「重度使用」。您期望每秒插入多少個插入點?

於是我想到了一個解決方案,爲什麼不爲事務日誌中的SQL添加到它會自動執行隊列時,沒有對數據庫

NO沉重的壓力定義「沒有沉重的壓力」?你怎麼知道的?

所有的一切,我會建議簡單地插入數據和調整的PostgreSQL,以便它可以與負載應付。

你可以讓IO的常規操作不會受此影響的數據移動到一個單獨的磁盤hardd。一般來說,插入速度受IO限制,所以讓自己成爲一個快速的RAID 10系統。

你可能還需要調節檢查點段和WAL作家。

但是,如果你不是在談論每秒鐘1000次插入的事情,那麼你可能不需要做太多的工作來完成這項工作(假設快速硬盤/ RAID系統)