Sequelize(Node.js)中useMaster: true的作用是什么?
Sequelize中useMaster: true参数的用途
useMaster: true是Sequelize针对MySQL主从复制架构设计的参数,核心作用是强制指定当前查询请求走主库(Master),而非默认的从库(Slave)。
具体适用场景:
- 解决主从数据延迟问题:主从复制过程中,从库的数据同步存在时间差,如果刚在主库写入数据后立刻读取,用默认配置可能读到从库的旧数据,加这个参数就能确保拿到最新数据。
- 特殊查询需求:某些SQL语法仅主库支持,或者查询需要和事务内的写入操作保持一致性,这时候必须让读请求走主库。
结合你给出的示例代码:
[error , coupons ] = await to(@wagner.get('sequelize').query( query , { useMaster: true, replacements : [coupon_offset, parseInt(limit)] , type: @wagner.get('sequelize').QueryTypes.SELECT } ))
这里虽然是SELECT类型的读操作,但通过useMaster: true强制让该查询直接发送到主库执行,绕过了Sequelize默认的读请求分发逻辑。
内容的提问来源于stack exchange,提问作者Piyush Keshari
相关产品推荐
相关产品推荐

