PHP会话存储在MySQL的Ajax恶劣环境中

时间:2009-07-16 14:23:28

标签: php mysql ajax

我正在寻找更改我的应用程序以在MySQL中存储PHP会话数据。该应用程序是ajax密集型的,但不使用长轮询或任何其他类型的持久连接。

我的问题是,在编写此代码时,我需要注意哪些问题?例如;我有一个页面发送4个ajax请求来加载数据(另一个主题);如果我必须在每个请求上更新会话数据,这会导致任何锁定问题吗?

感谢。

2 个答案:

答案 0 :(得分:1)

如果您同时向多个脚本发出ajax请求,则可能存在竞争条件。您无法验证它们是否会按照您分配ajax请求的顺序完成,除非您使用回调,这将证明速度相当慢。

只要您只是阅读就应该没问题,但如果您在撰写多个请求时正在编写,则无法验证是否正在对最新数据进行读取。

答案 1 :(得分:0)

如果速度是您主要关注的问题,那么在Memcache中存储会话数据会更好。您不会将数据库延迟与在表中存储数据相关 - memcache使用哈希键将数据存储在RAM中。这释放了您的关系数据库以执行实际的关系查询并为表缓存数据库的其他部分释放内存(对会话表的许多请求将填充任何可用内存以缓存其他表,否则将确信会话缓存是最重要的)。

当然,这是学习和维护的另一种依赖和服务,但速度提升是巨大的。