NodeJS 对于临时POSTGRES数据库,写多个INSERT比写UPDATE快吗?

lsmd5eda  于 2023-02-08  发布在  Node.js
关注(0)|答案(1)|浏览(90)

我正在重新设计一个项目,这个项目是我一年前刚开始学习编程时创建的。我当时使用的是MEAN堆栈,现在想把它转换成PERN堆栈。我的AWS知识也有了一些增长,我想扩展这些新技能。
应用程序从API接收实时数据,我清理这些数据并将其写入数据库,同时将这些数据广播到连接的客户端。
为了更好地概念化这个问题,我将提及以下项目:
api-m1:它接收传入的数据,并将其传递给我的模式,然后将其发送给我的socket-server
socket-server:处理WSS到应用程序前端客户端的连接。它也会将这些数据写入从Scraperapi-m1获取的postgres数据库。我希望最终将其转化为集群,因为我使用的是nodejs,并将合并Redis。然后我将在ALB后面使用sticky-session等为多个EC2示例运行它。
RDS:postgres表,socket-server将传入的scraperapi-m1数据写入其中。RDS用于获取与用户配置文件配置数据沿着存储的最新数据。注意:RDS主数据表最多包含120-150条UID记录,其中包含6-7列
为了帮助更好地形象化,请参见下面的img。

从数据库的Angular 来看,将数据写入RDS的最快方法是什么?假设在高峰时间,api-m1的记录数为20-40条/秒,scraper的记录数为20-40条/秒?每天之后,我使用lambda函数拆除数据库,然后重新开始(因为数据只是临时的并且不需要保存任何延长的时间段)。
1.我是否应该使用SERIAL ID插入每个记录,然后从前端获取基于uid的最近行?
2.a我是否应该更新每个UID,这样我就有了一个固定的N行数据,我只需要搜索和更新?(我可以看到这个瓶颈与我的Postgres客户端.
2.b仍然使用UPDATE,但执行BATCHED更新(如果我创建多个集群,我会遇到什么问题,即,我会遇到并发问题,其中表记录XYZ将使用较旧的值覆盖较新的值,因为我使用的是带有节点集群的BATCH UPDATE?
我担心的是UPDATE比INSERT慢,我不想让它尽可能快,应用程序的这一部分不是CPU密集型的,rt数据也不是那么密集。

k2arahey

k2arahey1#

为了让我的评论成为答案:
这里似乎不需要SQL语义,所以我只需要放弃RDS,使用Redis(或者DynamoDB,我猜)作为数据存储。

相关问题