我有一个使用复制服务器的 django 应用程序,并配置为使用主服务器作为只写,从服务器作为只读。但是当我开始监控我的数据库负载时,我发现主服务器有很多读取流量,经过一番调查,我发现了这一点:
def get_or_create(self, **kwargs):
# Update kwargs with the related object that this
# ForeignRelatedObjectsDescriptor knows about.
kwargs.update({rel_field.name: instance})
db = router.db_for_write(rel_model, instance=instance)
return super(RelatedManager, self.db_manager(db)).get_or_create(**kwargs)
get_or_create.alters_data = True
因此,从该代码中,我认为它使用写入数据库进行 get_or_create 所需的读取和写入操作,而不是使用从属读取和主控按预期“创建”,有人遇到过这个问题吗?除了重写 get_or_create 函数之外,还有其他方法可以解决它吗?