php – 使用$_SESSION来缓冲/缓存MySQL查询
我正在开发一个网站.目前,我正在使用cheapo共享主机.但是一个男孩可以做梦,我已经在思考我网站上有大量用户会发生什么.
访问者将需要偶尔进行数据库写入,因为他们会记录他们在网站上的游戏进度. 我想通过将进度和其他信息直接写入$_SESSION变量来最小化查询.只有当会话被销毁(注销,浏览器关闭或超时)时,我才想将$_SESSION的内容写入数据库. 问题: >那可能吗?当会话被超时或关闭浏览器销毁时,有没有办法执行函数?
是的,但它可能不会像你想象的那样工作.您可以使用 但是,由于超时而导致的会话到期不会发生在发条精度上;在过期的会话实际上是“垃圾收集”之前可能需要很长时间.此外,垃圾收集会触发probabilistically,因此从理论上讲,过期的会话永远不会被垃圾收集.
我真的不会这样做有几个原因: >过早优化(在测量之前,不要只是假设它会“更好”). 替代方案呢? 好吧,既然我们正在谈论el cheapo共享托管,你绝对不会控制服务器,所以涉及PHP扩展的任何东西(例如memcached)都是有条件的.数据库端缓存也不会飞.此外,服务器上的负载将受到控制之外的变量的影响,因此您无法进行任何容量规划. 在任何情况下,我首先要确保数据库本身的结构是最佳的,并且代码的编写方式可以最大限度地减少数据库的负载(仅通过在编辑器中输入内容就可以获得免费性能). 之后,您可以引入只读缓存:通常需要显示很多东西,但不打算修改.对于“几乎从不”更新的数据,会话缓存在您需要时无效,可能是一种简单而有效的改进(您甚至可以在失效方面产生误报,只要它们不是太多,宏伟的计划). 最后,如果您担心在单个请求期间从数据库中提取相同的数据两次,则可以添加按请求缓存(在变量中). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |