Node.js Sequelize hits数据库,为每个事务命令创建新查询

Node.js Sequelize hits数据库,为每个事务命令创建新查询,node.js,sequelize.js,Node.js,Sequelize.js,对于sequelize事务,我遵循了本教程: 它确实可以工作,但我注意到,对于代码中的每个命令,sequelize都会向数据库服务器发送一个查询并等待响应 这是一个问题的原因,因为我的数据库服务器与我的节点服务器不是很近,所以每次往返都会很昂贵 这似乎非常浪费。既然sequelize实际上只是将js代码转换成MySQL语法,那么只需构造查询,然后一次性将其发送到数据库,不是更有效吗?或者至少,避免在调用sequelize.transaction()时发送查询,并在后续命令中发送“启动事务”。

对于sequelize事务,我遵循了本教程:

它确实可以工作,但我注意到,对于代码中的每个命令,sequelize都会向数据库服务器发送一个查询并等待响应

这是一个问题的原因,因为我的数据库服务器与我的节点服务器不是很近,所以每次往返都会很昂贵

这似乎非常浪费。既然sequelize实际上只是将js代码转换成MySQL语法,那么只需构造查询,然后一次性将其发送到数据库,不是更有效吗?或者至少,避免在调用
sequelize.transaction()
时发送查询,并在后续命令中发送“启动事务”。
因此,基本上有没有一种方法可以创建一个包含多行查询代码的事务,然后一次将其发送到数据库?

不幸的是,您想要做的似乎是ORM的反模式,其中包括sequelize.js。ORM是管理数据库连接的功能性方法,而不是查询本身。 您可能想改用查询构建器。看看这个

查询生成器和ORM之间的区别
  • ORM为您提供了与数据库的连接,您可以使用API运行查询。在大多数情况下,查询对用户是黑框的

  • 在用户将生成的查询放入数据库连接之前,查询生成器API不会运行查询


另外,事务用于回滚和提交以保持相同的上下文(google原子性),不能将查询放在一起以减轻网络工作负载