→ buganini:fb有一堆機器是差滿記憶體沒有硬碟的啊 05/06 01:24
※ 引述《pLxxoy (刃傷沙汰)》之銘言:
: 標題: [請益] 以天為單位自動更新資料庫計算結果
: 時間: Fri May 4 22:41:17 2012
:
: 我的作法是先跑一個loop計算出其他的使用者跟A的相似度
: 再把那些算出來的值在同一個頁面用QuickSort排序後取前五個列出
: 可是這樣一來等於A每進入這個頁面一次就要重算一次
:
: 問題是:有辦法限制說A第一次進入頁面時才做計算並存入資料庫中
: 之後當A重新拜訪頁面時,就從資料庫直接印出來給A
: 直到隔天才重新開始做重新計算的動作嗎?
:
: 希望板友能提供我一些解決這方面問題的關鍵字或方向 謝謝!!
: → tyf99:不用 cron 的話,就是在每次有人瀏覽時觸發 05/05 00:45
: → tyf99:若距離上次觸發時間超過一天,就執行統計 05/05 00:46
: → tyf99:是的,執行統計時就順便寫入 timestamp 05/05 16:37
: → tyf99:我之前的作法是只有 admin 登入時才進行統計 05/05 16:41
: → tyf99:因為統計也只有 admin 看得到,平常不需要跑統計拖效能 05/05 16:42
: → tyf99:不過我的案例跟上面這個不同,上面這個是要給大家看的 05/05 16:43
是說我剛好有做一樣的東西, 我的方式是用 memcached.
user 第一次進來, 跑資料(會慢一點, 但是用ajax load 至少不會
等頁面等太久, 輸出前丟到 memcached 裡, key 用 xxx_user_id.
再度進頁面, 先檢查 memcached 有沒有這個 key.. 沒有才要跑 php.
memcached, cache本身就可以設定過期時間, 不用去自己計算.
也不用跑資料庫, memery 快到爆, 缺點... 浪費記憶體(誤)
當然也是可以用file當cache... 實做上的方式的問題.
--
Live Long and Prosper
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.31.105.62