簡體   English   中英

將會話存儲在數據庫中,這是一個好主意嗎?

[英]Store session in database, is it a good idea?

我正在閱讀Pro Php應用程序性能書

在“共享會話”一章中,該書建議將會話存儲在數據庫中。

這使我感到好奇,當您將會話存儲在數據庫中時會對性能產生影響嗎?

我的意思是數據庫已經超載了來自動態頁面的請求,現在還需要處理會話數據。

現在,在每個頁面請求中,都必須從數據庫中讀取會話數據,這是一個好主意嗎?

默認情況下,會話數據存儲在某個臨時文件中(在/tmp/... ,請確保它在網絡上不可見!)。 如果您的站點獲得了大量流量,並且您擁有優化的數據庫或數據庫集群,那么將其存儲在其中可能是值得的。

就您的情況而言,您提到數據庫已經受到很大的壓力,因此可能不值得。

無論如何,您可能需要花費幾分鍾來實施書籍的解決方案,這並不難。 評估效果並親自觀察。

當必須為多個網站共享會話存儲時,將會話存儲在數據庫中是個好主意。 如果不是這種情況,請將會話存儲為文件系統就可以了。

當您使用共享公共數據庫的多個應用服務器時,將會話存儲在數據庫中很有用,並且您不想在負載均衡器中放置任何自定義邏輯來重定向請求。 命中數據庫以獲取每個請求的會話將是一項昂貴的操作(除非您對其進行緩存)。 無論如何,我們始終可以通過修改會話Cookie在負載均衡器中使用某種邏輯將請求重定向到適當的應用服務器。 在您的情況下,將會話存儲在數據庫中不是一個好主意

將會話數據保留在數據庫中的一個優點是,您可以將其與元數據(例如用戶ID,登錄時間等)組合在一起。這很容易找出諸如“用戶X當前是否登錄?”之類的信息。 “有多少用戶登錄?” 等等

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM