2011-11-04 54 views
2

我只是想知道是否有任何方法來存儲一些PHP腳本的獨立於服務器上不斷運行的實際網頁。運行獨立的MySql查詢

例如我有這個MySql查詢; $ sql =「UPDATE users SET connection = IF(NOW() - last_access_time> 3,0,1)」;

基本上它會檢查當前正在使用該網站的每個數據庫用戶。 網站的要求迫使我每隔2秒就在幾乎每一頁上都這樣做。

它似乎在服務器端創建了很多流量。那麼有什麼辦法可以獨立於網站運行這個查詢嗎?或者還有其他解決這個問題的方法嗎?

回答

1

不知道如何抽象出這個特殊情況,但它看起來像我試圖維護數據庫中的記錄是否用戶當前在網站上處於活動狀態。

這是怎麼回事?

在每一頁上運行此:

$sql = "UPDATE users SET last_access_time = NOW() WHERE id=".$_SESSION['USERID']; 
在腳本

然後,你正在尋找一個連接的用戶做這種方式:

$sql = "SELECT * FROM users WHERE last_access_time < NOW()-3"; 

的方式你現在正在運行它,每次有人點擊某個頁面時,您的數據庫服務器都必須運行每個用戶,以將狀態設置爲活動狀態。相反,你只能打你的db每次你實際上需要那個信息。