簡體   English   中英

會話變量與數據庫

[英]session variables vs database

我正在為自己的大學工作而在一個網站上工作,它必須允許不同用戶登錄。 我的導師告訴我,我應該使用會話變量/數組來存儲所有用戶數據,例如名字,地址等。

在我的設計中,我只具有用戶ID和電子郵件地址(用於登錄的電子郵件地址),然后根據需要從數據庫中獲取數據。 他說,這會像許多數據庫連接一樣使站點速度變慢。

我應該將所有數據存儲在會話變量中還是連接到數據庫以訪問此數據?

感謝您的任何建議:)。

當他們第一次登錄時,您可以從數據庫中獲取信息,然后將其保留在會話變量中,直到他們注銷或會話超時為止。 如果有許多用戶同時登錄,則將大量用戶數據保留在會話變量中可能會產生一些開銷,但這與進行常量查詢不同。

回答的最佳方法可能是詢問用戶還有多少其他數據,以及在“典型”會話中可能需要多少數據。 大多數用戶在會話期間的某個時刻需要加載的數據可以在登錄時加載。 大多數用戶在典型會話期間不需要的數據可以按需加載。

答案取決於您希望如何獲得解決方案的“真實世界”。 在一個真正的高流量站點中,該站點將在多個服務器之間實現負載平衡,數據將存儲在數據庫中,然后從數據庫中獲取時使用諸如內存緩存之類的內容緩存一段時間。 如果您不需要將其帶走,那么完全可以接受會話中的緩存。

暫無
暫無

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

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