我需要在網站的首頁顯示一些基本統計信息,例如博客,成員和一些計數 - 所有這些都是基本查詢。使用PHP/MySQL顯示一些統計信息的最有效方式
我更喜歡找到一種方法來運行這些查詢說每30分鐘,並存儲輸出,但我不知道最好的辦法,我真的不想用cron。基本上,我不想每天進行數千次查詢來顯示這些結果。
關於這種類型函數的最佳方法的任何想法?
在此先感謝
我需要在網站的首頁顯示一些基本統計信息,例如博客,成員和一些計數 - 所有這些都是基本查詢。使用PHP/MySQL顯示一些統計信息的最有效方式
我更喜歡找到一種方法來運行這些查詢說每30分鐘,並存儲輸出,但我不知道最好的辦法,我真的不想用cron。基本上,我不想每天進行數千次查詢來顯示這些結果。
關於這種類型函數的最佳方法的任何想法?
在此先感謝
不幸的是,cron
是更好的和可靠的解決方案。
Cron是類Unix計算機操作系統中基於時間的作業調度程序。名字cron來自「chronos」一詞,希臘語來自「時間」。 Cron使用戶能夠安排作業(命令或shell腳本)在特定時間或日期定期運行。它通常用於自動化系統維護或管理,儘管它的通用性意味着它可用於其他目的,例如連接到Internet和下載電子郵件。
如果你是輸出存入磁盤文件,
可以隨時檢查filemtime較小超過30分鐘,
之前繼續重新運行昂貴的查詢。
Cron Job是最好的辦法沒有別的我看到可行。
你有很多事情要做,我認爲好的不是最好的,你可以將數據存儲在桌面上並每30分鐘顯示一次。使用功能sleep()
我建議你看一看WordPress博客系統,以及專門的插件BuddyPress的..
和我一樣的前一段時間,並且每次有人加載頁面,查詢做作業和檢索數據庫中的信息,我remenber它是像
SELECT COUNT(*) FROM my_table
和我在我的情況下,職位的數目。
無論如何,有這麼多的方法。祝你好運。
別忘了cron永遠是你最好的朋友。
使用cron是解決問題的最簡單方法。
不使用cron的一個很好的理由 - 即使沒有人會請求它們,您也會生成統計信息。
根據生成數據所花費的時間長度(您可能希望跟蹤以前的計數,並在時間戳大於上次運行時添加計數 - 使用適當的索引!),則可以觸發當請求進入時,這個數據看起來好像是陳舊的。
請注意,您應該將統計信息保留在數據庫中,並考慮如何實施互斥鎖,以避免多個請求嘗試同時更新緩存。
然而,正確的解決方案是每次更新統計添加記錄。除非你有很大的流量,否則開銷會很小。雖然'SELECT count(*)FROM some_table'會很快運行,但如果您不僅僅想要統計表中的行數(例如,如果博客和回覆被保存在同一個表中) )。事實上,如果您要在相關表上實施統計更新作爲觸發器,那麼您無需對您的PHP代碼進行任何更改。
更新:我發現的最佳方式是將統計信息存儲在緩存中30分鐘。當緩存過期時,只需運行查詢並再次存儲到緩存中再過30分鐘即可。不需要cron。 – gus 2011-12-04 15:02:31