您的直觉似乎是正确的。我建议按如下方式创建表:
CREATE TABLE session (
id CHAR(32) NOT NULL,
data BLOB NOT NULL,
t_created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
t_updated TIMESTAMP,
PRIMARY KEY (session_id),
INDEX t_created(t_created),
INDEX t_updated(t_updated)
)
ENGINE = MEMORY
CHARACTER SET utf8;
笔记:
旁注: 我不确定您打算如何垃圾收集会话,但是如果您希望50%的会话在5分钟以内,那么会话结束是如何定义的?用户/客户端是否必须明确退出会话(通过注销)?如果您隐式结束会话,那么用户访问网站的时间可能会很艰难。