我正在構建一個Web應用程序,我正在考慮一種將Facebook與我的應用程序集成的方法,我在用戶的會話數據中臨時緩存用戶朋友的FBID的json數組到我的應用程序。我正在使用數據庫來跟蹤會話數據。數據庫會話存儲大小限制
這是CodeIgniter的數據庫表,用於跟蹤用戶會話:
CREATE TABLE IF NOT EXISTS `ci_sessions` (
session_id varchar(40) DEFAULT '0' NOT NULL,
ip_address varchar(16) DEFAULT '0' NOT NULL,
user_agent varchar(120) NOT NULL,
last_activity int(10) unsigned DEFAULT 0 NOT NULL,
user_data text NOT NULL,
PRIMARY KEY (session_id),
KEY `last_activity_idx` (`last_activity`)
);
對於那些熟悉FQL,我想緩存有這個查詢的結果:
SELECT uid, is_app_user FROM user
WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = xxxxxxxx)
ORDER BY is_app_user DESC
LIMIT 0,1000
這將返回用戶朋友的列表,以及這些朋友是否是我的Facebook應用程序的用戶。我有大約770個Facebook好友,並且由此查詢返回的json編碼數組的大小約爲33kb。
我爲我的應用程序的後端使用CodeIgniter,並且我想知道是否爲每個會話存儲〜33kb值的數據可能會產生任何不利影響。我打算讓會議在一段合理的時間後過期,以防止我的桌子永遠增長。任何人有任何見解?
UPDATE
只是想補充的是,發動機運行我的會話表的MyISAM(不知道這是最好的,表級鎖與InnoDB的行級鎖......總得看個明白),並且FBID自然會作爲序列化JSON存儲在user_data(TEXT)列中
由於我使用負載均衡,文件緩存不適用於我的情況,但在數據庫表中緩存列表也可能起作用。我必須多看看它。 –