在阅读了CodeIgniter如何处理会话之后,让我关注会话配置为从数据库中存储和检索时的性能影响。
这来自CI文档:“当会话数据在数据库中可用时,每次在用户的cookie中找到有效会话时,都会执行数据库查询以匹配它。”
所以每次调用AJAX时,我请求的每个HTML片段都会产生这种开销吗?对于那些试图扩展的系统来说,这可能是一个巨大的问题!
我猜想CI会更好地实现它:在会话记录中对它们进行编码时,包括MD5哈希以涵盖sessionID +时间戳。然后,只要重新生成sessionID,每X分钟只检查数据库中的会话记录。我错过了什么吗?
答案 0 :(得分:0)
您可以使您的AJAX请求使用不同的控制器,例如Ajax_Controller而不是MY_Controller。 MY_Controller将加载Session类,但Ajax_Controller不会。这样,当您调用AJAX时,它不会触及会话数据,因此不会对数据库进行任何不必要的错误调用。
如果您正在自动加载Session类,也许您可以尝试为AJAX请求卸载它?我从来没有尝试过,但是在http://codeigniter.com/forums/viewthread/65191/#320552讨论了它,然后做了类似的事情
如果($这 - >输入 - > is_ajax_request()){ //卸载会话类代码到这里 }