mysql - Postgres 缓慢且延迟的插入

标签 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

最佳答案

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

解决方案可能是:

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

至于丢失 id - 如果某些插入事务因任何原因回滚(包括客户端突然关闭连接),就会发生这种情况。

很难说这是否正常 - 取决于您的工作流程。但您不应该尝试回收丢失的 ID - 在事务数据库中,这根本不值得。

关于mysql - Postgres 缓慢且延迟的插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25721974/

相关文章:

MySQL根据条件求和

mysql - 连接复合键

SQL 变量在 Excel 查询中不起作用

php - 使用 php 的 mysqli 准备好的语句很慢

python - 任何加速 Python 和 Pygame 的方法?

excel - 使用相对引用

c# - WPF C# 应用程序中的哈希密码

c# - 尽管为它们分配了值,但 DataRows 还是出现空值

sql - 在 Microsoft SQL Server 2005 中模拟 group_concat MySQL 函数?

sql - 数据库设计建议