簡體   English   中英

將數據存儲在全局/會話變量與MySQL查詢中

[英]Storing data in global/session variables vs. MySQL queries

有關組織網站的一般PHP問題:為了提高效率,將MySQL查詢中的數據存儲到全局數組中還是在每次需要數據時進行新查詢會更好? 我特別考慮的是面向體育數據的網站,其中包含很多不一定經常更改的數據。 我聽說將數據存儲到數組中效率更高,但是由於全局變量在當前PHP頁面的范圍內才是全局變量,所以我不知道如何。 理想情況下,啟動服務器后,我想填充所有陣列。 那我應該使用會話變量嗎? 我還沒有聽說有人這樣做。

會話變量無法解決問題,因為會話也不是全局的(除非您通過為所有訪問者設置相同的session_id來對其進行黑客攻擊)。

如果您的流量很大並且需要保存查詢,則可以使用諸如memcached或redis之類的緩存服務器。

如果無法安裝memcached或redis,則可以創建一個包含數組的PHP文件,並將其包含在腳本中-例如,使用文件緩存。 這種方法的壞處是您將使用大量內存-任何PHP腳本,任何訪問者都應在內存中讀取整個數據。 因此,如果數據庫不是瓶頸,最好保留查詢。

暫無
暫無

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

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