以下是我正在研究工作解决方案的方案。我们在postgres中有一个表格,用于存储网络上发生的事件。目前它的工作方式是,当网络事件到来时插入行,同时删除与特定时间戳匹配的旧记录,以便将表大小限制为大约10,000条记录。基本上,与日志轮换类似的想法。网络事件一次成千上万,因此交易率太高导致性能下降,有时服务器崩溃或变得非常慢,最重要的是,客户要求保持表大小高达百万条记录这将加速性能下降(因为我们必须继续删除匹配特定时间戳的记录)并导致空间管理问题。我们使用简单的JDBC来读/写表。那里的技术社区可以建议更好的方法来处理此表中的插入和删除吗?
答案 0 :(得分:4)
我想我会使用分区表,可能是所需大小的10倍,插入最新的,并删除最旧的分区。
http://www.postgresql.org/docs/9.0/static/ddl-partitioning.html
这使得负载开始减少最早的"比查询和删除小得多。
更新:我同意nos'但是注释,插入/删除可能不是你的瓶颈。也许先调查一下。
答案 1 :(得分:0)
你可以试试的一些事情 -
一些一般性建议 -