2011-03-14 36 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系统)