代码之家  ›  专栏  ›  技术社区  ›  Joey Yi Zhao

我应该在数据库或查询中使用带条件的更新,然后在应用程序中使用更新吗?

  •  0
  • Joey Yi Zhao  · 技术社区  · 4 年前

    我有一个场景,我的应用程序需要在有条件的情况下更新postgresql数据库中的记录。更新基于表PK( id )而且只有在状态不是 active .

    我想向db发送一条SQL update语句,比如:

    update table Table values(xxx) where id=xxx and status != 'active';
    

    它应该可以工作,但我对数据库的可伸缩性有另一个想法。我有一个写实例和几个读实例。我的申请发送 update 编写实例并 query 要阅读实例,我有另一个解决方案:

    const records = db.query("select * from Table xxx where id=xxx and status = active");
    if (records.length === 0){
      return;
    }
    db.update(....)
    

    在上面的代码中,它首先从数据库中查询记录,然后再进行更新。有90%的几率该记录处于活动状态。这样一来,它将在第一次查询时停止更新项。并在大规模的读取实例上命中查询。

    我不知道这是不是一个好办法。

    0 回复  |  直到 4 年前