我有一个定期运行的任务,它对现有数据执行大量数据库写入调用。在大多数情况下,写入的记录不包含更改,因此更新查询是多余的。但是,冗余写入调用会对我们的数据库复制造成不必要的高负荷。
这大致是算法:
instance.save()
由于比我们的数据库复制更容易扩展我们的任务处理器,我想我会通过这样做将一些处理负载转移到代码上:
if original_instance != possibly_updated_instance:
possibly_updated_instance.save()
事情是:Django ORM的等式运算符似乎只是比较主键,所以我们错误地删除了更改。
有没有更好的方法来解决这个问题?