[英]php session vs mysql speed
我正在使用權限系統。 在每個頁面中,它將需要檢查用戶是否具有這樣做的權限。 我有兩個選擇,將數據存儲在會話變量中(僅在登錄期間更新)或每次查詢數據庫以獲取信息。 哪個更快?
我意識到如果權限發生變化,我將需要更新會話變量,因此用戶需要重新登錄以“查看”權限的變化,但這不是決策中的因素,只有速度。
會話速度與數據庫的速度取決於許多因素:
我可以說,對於少量數據,基於文件的會話變量將比DB訪問更快。
您需要對其進行測量以獲得應用程序中兩種方法之間的相關比較。 我個人懷疑,如果不采用會話解決方案,它會產生如此大的影響。
在會話中設置新值:
時間:0.00062895秒
在數據庫中插入相同的值:
時間:0.00000811秒
在Cookie中插入相同的值
時間:0.00000906秒
或者您可以使用以下代碼進行測試:
$before = microtime(true);
// Put your code here
$after = microtime(true);
$Speed = number_format(( $after - $before), 8);
echo "<h1>Time: " . $Speed . " Seconds</h1>";
我會在會話中存儲這種信息:
我還要補充一點,如果有一天你開始擁有幾個不同的Web服務器,你將能夠使用memcached存儲會話數據 - 這意味着它比數據庫更好地擴展。
簡短回答:將它存儲在會話變量中可能會快一些,因為您已經從數據庫中填充了它。 話雖如此,我懷疑單個簡單數據庫查詢的速度會以任何真正可衡量的方式使您陷入困境。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.