最好的保存方式使用node.js保持每1秒到Postgres的数据

问题描述:

我正在使用node.js构建一个项目,该项目与其他4个不断发送来自传感器的数据的系统每隔1秒进行一次集成。我试图拥有一个时间线,因此我需要保存这些数据,但是我不觉得每隔一秒钟发出一对插入语句都是正确的。最好的保存方式使用node.js保持每1秒到Postgres的数据

什么是保存冗余数据的最佳方式。我正在考虑有一些日志文件,然后批量插入数据。有什么建议么?

谢谢。

+0

你应该看看mongo db或者类似的nosql数据库来存储经常相对容易的数据 – gaganshera

+0

@gaganshera这是一个愚蠢的建议,考虑到PostgreSQL在多行插入操作方面明显优于那些数据,更不用说数据完整性了PostgreSQL默认带这个。 –

这会使它成为不成熟的优化。我在Node.js下多次标记PostgreSQL。并且在任何时候,如果每秒插入几条记录,则每秒插入几条记录的时间将会少于10毫秒,即少于应用程序负载的1%。

即使您一次只插入2行,从开始使用多行插入开始您应该进行的唯一有价值的优化。对于这种情况的原因如下:

  • Node.js的IO是一种宝贵的资源,所以你做的更少往返更好
  • 多行插入大大超过单独的插入速度查询
  • 独立插入通常需要事务,并且单个多行插入不需要。

你可以在这里找到一个很好的例子:Multi-row insert with pg-promise

+0

如果数据在不同的表中,我仍然可以进行多行插入? –

+0

@ HasanAl-Natour每个表格都需要自己的插入查询,很明显;) –

+0

我想到了使用RabbitmQ排队插入,并让应用程序或工作人员的另一个实例使用promise来插入,您怎么看? –