[英]Php Globals v. Database calls for lots of data
對於大型數組,是否需要在每次需要時將數據保存到全局變量或查詢數據庫更好? 在我的情況下,將它們保留在本地范圍內並傳遞給函數不是一種選擇。
我使用的是wordpress,在大多數頁面中,我都會獲得每個用戶以及所有附加到他們的元數據。 通常,我經常在同一頁面的多個位置使用這些變量。 不幸的是,wordpress不允許我在模板之間傳遞變量,因此每次使用全局變量或調用數據庫時都會遇到麻煩。 最終,這將是數百個用戶,每個用戶都附有很多元數據。 我應該每次都調用數據庫以使變量保持局部狀態,還是應該將它們保存到全局變量中以保存數據庫查詢? 有哪些注意事項? 我應該擔心性能,開銷和/或其他問題嗎?
非常感謝!
解決您問題的唯一真正方法是使用某種緩存系統( Memcache和Redis是您的最佳選擇)。 幸運的是,有許多Wordpress插件使集成變得容易。 例如:
編輯
如果您只想緩存一些數據庫調用,則可以忘記Wordpress插件並開始編寫一些代碼。 假設您只想緩存用於從數據庫中檢索用戶列表的調用,並假設您正在使用Memcache完成此任務(Memcache存儲鍵值對,並允許超快速訪問給定鍵的值)。
就這樣。 現在,您只需要確定要緩存的內容並將此過程應用於這些元素即可。
您不必執行呼叫,而是每頁執行一次,您可能必須為每個頁面執行一次調用。 因此,我建議您創建某種類以與數據庫進行交互,您可以調用該類來獲取所需的數據。 我還建議您在數據庫上使用存儲過程和函數,而不是直接查詢,因為這將有助於安全性以及應用程序邏輯和數據功能的分離。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.