freyja 將引入另外一項功能大幅提高伺服器效能

2021-09-01 01:13:03 字數 842 閱讀 3817

group相當於乙個索引。乙個表只能有乙個group 設為group的字段必須是唯一的。

例如 以user為核心,與user一對多的表都把uid 設定為group: @group(isgroup=true)

這樣能大幅減少維護快取的開銷。

freyja 將引入另外一項能大幅提高伺服器效能功能,與group不同。group相當於針對freyja的一種處理。

就叫:delay 。  @

delay註解

被annotation註解的字段在update的時候將不會儲存到資料庫(什麼都不做),然後在快取過期的時候才會update一次,另外提供乙個方法主動update,這樣在一些地方可以從資料庫中讀取正確值。

問題1:哪些欄位不能夠被標記為delay。

答:          出現在查詢條件中的字段不能被delay。freyja的快取目前只覆蓋到了單錶查詢,聯表查詢是沒有使用快取的。所以年表查詢的結果是從資料庫中取得,而單錶查詢全部取自於快取。上面說的提供主動update就是為了在有些情況下主動同步一次資料以達到資料一致。查詢條件關係則查詢結果,而查詢結果取自於資料庫。

問題2:斷電了怎麼辦?

答:         一切隨緣吧。

在一般的遊戲專案中,經常可以看見人們把一些東西存進記憶體中然後過一段時間同步到資料庫。freyja就是這麼做的,只不過更加的簡單。只需要指定哪些欄位不需要即時同步的。

當然,在你設定delay之前,你要好好的看看你的系統裡面到底哪些地方用到了這個字段。

delay帶來了哪些提公升?這些欄位每update一次,他的作用就提高1點。注意:單錶查詢!

突然感覺到,自己的遊戲專案中沒有多少地方用到聯表查詢。難怪我會認為開發freyja很有必要性

陣列刪除一項 物件刪除一項

經常用到,記一筆 var jone var skills vue react angular jquery bootstrap delete jone.輸出 var jone delete skills 1 輸出skills vue empty,angular jquery bootstrap 其中...

單一項原則

單一項原則真的很有用,特別是用於找出問題的根源.上週改乙個bug,bug的現象是 在火狐中,開啟介面 當然是公司產品的介面,不便給出位址 點選導航項時,除了開啟導航的模組,同時會開啟乙個空白的頁面.我是怎麼解決這個bug的呢?我找到導航的那段 以及相應的事件處理的js,copy到乙個簡單的html頁...

如何完成一項Mission Impossible

為什麼會這樣呢?其實在我們團隊制定dod definition of done 的時候,就已經體現出來了,只不過我們還沒有過多在意。我們當時制定的dod包括以下內容 完成字幕製作 完成背景 的整合 完成場景的合成 完成對內容的表述 第乙個sprint開始,我們按照scrum的框架,先開了乙個plan...