Postgres缓慢和延迟插入

时间:2014-09-08 10:16:33

标签: mysql sql performance postgresql

我有问题,数据库插入缓慢和延迟的方式。 情况如何,我有一张表mobiledata,其中有一个高插入。它有一个主键作为id(bigserial)。 id nextval来自序列mobiledata_seq。 当我在表中看到插入时,插入行时会丢失序列。也会在一段时间后插入行插入10秒 这种情况在极少数情况下发生,有时它就像魅力一样。

示例:

Select id from missingdata order by id desc limit 100;
output
611815
611813
611810
611809
611807
611805
611804
611802
611801
611800
611799
611798
611797
611796
611795

1 个答案:

答案 0 :(得分:0)

如果您的插入率非常高,服务器可能很难将您的数据刷新到磁盘。另一种可能性是,如果您在此表上创建了太多索引,则服务器必须在插入期间更新所有索引,这可能会变得非常昂贵。

解决方法可能是:

  • 在postgresql.conf上运行pgtune实用程序,以确保您的服务器配置合理
  • 在此表中删除一些不必要的索引
  • 改进磁盘子系统,例如安装SSD
  • 添加内存

至于缺失ID - 如果某些插入事务由于任何原因而回滚,包括客户端突然关闭连接,则会发生这种情况。

这是否正常很难说 - 取决于您的工作流程。但是你不应该试图回收缺少的id - 在事务数据库中它根本不值得。