我正在爲我的網站創建Facebook應用程序,其中包括需要用戶朋友列表的功能。是否存儲大會話減慢響應時間和服務器
找回朋友是沒有問題的,我正在努力的決定是如何存儲它們。
- 選項1 -儲存在我的MySQL數據庫的用戶,我選擇沒有去這是我的數據庫將變得非常沉重,非常快。另外,我需要爲每個Facebook用戶創建一個表格!
- 選項2 -將Facebook朋友陣列存儲在每半小時更新一次的會話中,以確保包含新朋友。 忽略會話每半小時更新一次的事實,在會話中存儲什麼可能是非常大的數組是一個壞主意?
該網站很可能會收到大量的流量,因此會存儲很多這些會話。
儘管我是一位經驗豐富的開發人員,但在這些情況下,我對會話沒有太多經驗。我只想知道這是否是一個壞主意?
只給你的朋友的典型陣列上的一點信息:
- 每個數組的格式爲{0多維[UID:1,名稱:喬布羅格斯,圖片:test.jpg放在] ,1 ...}
- 朋友列表的範圍通常從100個項目到5000個項目,儘管平均約爲700個。這些不算小!
如果這是一種存儲朋友的不好方法,那麼還有什麼其他選項(不包括MySQL)?
會話是否影響內存(RAM)的使用?
'我需要爲每個Facebook用戶創建一個表格!' - 你不需要這樣做。如果你認爲你這樣做,你的計劃數據庫模式是有缺陷的。 – DaveRandom 2012-01-30 10:55:02
是的,會話對內存使用有影響,因爲它們在運行/讀取時可用於php。我會使用session_save_handler將會話存儲在數據庫中。 (如果真的很重的數據存儲到會話中,您可以將數據拆分到另一個表中以保持「正常」會話訪問和表格的小)。 – djot 2012-01-30 10:55:27
使用數據庫,就是這麼做的。不要認爲陣列不會變得沉重。至於每個人的桌子,不是問題。這就是爲什麼他們發明了創建查詢。另外,你不需要。將它們存儲在一個雜亂無章的時尚中,你們都很棒。 – 2012-01-30 10:55:47