2009-08-04 112 views
1

在高負載應用程序中,將客戶端存儲放在註冊表還是數據庫中會更好嗎?我擔心我的高負載會導致更多的數據庫連接來存儲客戶端存儲信息,並使所有的事情都變慢。 供參考:我們在Linux上使用ColdFusionColdFusion客戶端存儲

想法?

回答

5

如果您將客戶端變量存儲在註冊表(恕我直言),您將有更多的性能影響與高負載。當Coldfusion將客戶端變量存儲在DataBase中時,它們在頁面請求的開始處被讀取,然後在頁面被編譯之後,它們被重新存儲在數據庫中。如果您在管理員中啓用了連接池,則這可以是存儲變量的一種非常有效的方法。

請參見:http://www.coldfusionmuse.com/index.cfm/2009/7/8/client.variables.reserved.word

+0

當您提到「連接池」時,是否指在Coldfusion管理員中設置數據源時「維護跨客戶端請求的連接」? – 2009-08-04 16:39:47

+0

是的,抱歉,我現在沒有CF管理員面前。實質上,通過打開該頁面,每個由​​頁面進行的數據庫調用將使用相同的打開連接,然後在調用完成時關閉連接。每個數據庫調用的打開和關閉連接會產生相當大的開銷。 – andrewWinn 2009-08-04 17:23:15

0

數據庫是肯定的。 IMO註冊管理機構只有在具有內部網,內部系統和20個用戶的情況下才可行。

+3

似乎你已經設置了非常隨意的邊界,在這裏。 21個用戶的內部網怎麼樣? 25? 30?最後,我認爲你將這個觀點置於錯誤的因素之上。 Windows註冊表是一個混亂的黑客開始,並試圖存儲瞬態數據(客戶端變量)只是問問題。例如,註冊表可能是當機器變慢時從未得到任何「清理」的事情。清理它的唯一方法是重新格式化。 2009-08-05 12:51:24

0

如果您在Linux上使用客戶端存儲,那麼註冊表不存在,因爲它在* nix上的使用在ColdFusion中不受支持。

您唯一的選擇是數據庫或cookie。

根據用戶正在使用的瀏覽器,如果用戶啓用或禁用了Cookie,以及根據您使用客戶端存儲的內容對安全性的影響,Cookie將會有限制。

數據庫將最有可能成爲客戶端存儲的最高效解決方案,並且如果您需要考慮高負載,則可以擴展到羣集。

0

只使用客戶端cookie作爲存儲。在我的經驗註冊表是不可能的,甚至不應該是一個選項伊莫。數據庫存儲最終會變得非常大以至於出現性能問題。

對於大型網站來說,基於cookie的規模最大。