2
我有一個Django應用程序與複製服務器一起工作,並配置爲使用主服務器作爲只寫且從服務器爲只讀服務器。但是,當我開始監測我的數據庫負載,我發現,主是有很多讀的流量,經過一番調查,我發現這個:Django get_or_create具有主/從寫入/讀取配置
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函數?
想知道解決這個問題的最佳方法是使用單主設置。是否有某種解決方法,或者在這種設置中如何處理複製?也就是說,有什麼更好的方法來實現它? https://github.com/jbalogh/django-multidb-router看起來像它可能會解決這個問題,但它會強制讀取該單個http請求的寫入表 – 2013-03-14 07:30:09