我正在開發對存儲在postgres django數據庫中的數據進行操作的優化算法。我的算法不得不重複修改數據庫中的對象,有時會恢復所做的更改(對於那些知道的人來說,它是元啓發式算法)。 問題是我不想在此過程中保存對postgres數據庫的修改。當我對優化結果感到滿意時,我想在流程結束時保存修改。我認爲解決方案是將所有相關的對象加載到內存中,對它們進行處理,最後將內存中的對象保存到數據庫中。在不修改它的情況下處理Django數據庫
但是它似乎比我想象的更困難......
事實上,當我將一個Django查詢(即model1.objects.get
或model.objects.filter
),我擔心Django的調用有時對象在數據庫中,有時在它的緩存中,但我很確定,在某些情況下,它不會與我手動加載到內存中的實例相同(這是我想要工作的實例,因爲它們可能在數據庫加載後發生了更改)...
有沒有辦法繞過這些問題?
我實現了一種自定義的迷你數據庫,但它的維護變得非常困難,而且總體而言,我認爲這不是最簡單和優雅的方式。我想將postgres數據庫的相關模型轉儲到內存中(爲了性能),在這個內存數據庫上工作,並且在完成我的算法時,從內存中的數據更新原始數據庫的數據(這意味着django可能會通過pk保留原始對象與內存數據庫中的對象之間的鏈接,以識別哪些是相同的,我不知道是否有可能)。
有人有洞見嗎?
預先感謝您。
非常感謝! – Svan
非常歡迎。既然你在這裏還是新手,我是否可以指出在這裏說'感謝'的首選方式是通過提高投票的好問題和有用的答案(一旦你有足夠的聲望這樣做),並接受最有幫助的答案到任何問題你問(這也給你一個小小的提升你的聲譽)。 請參閱[關於]頁面以及[如何在此提問?](http://stackoverflow.com/help/how-to-ask) – e4c5