PHP;使用会话还是重复使用查询?
我对在我的游戏中处理用户数据的更有效的方法感兴趣。当有人在玩游戏时,来自服务器的数据需要不断地从数据库中查询 因此,我想知道是否更有效的方法是继续查询数据库,或者在会话中存储第一次查询的数据,然后在每次需要数据时继续使用会话PHP;使用会话还是重复使用查询?,php,mysql,performance,session,Php,Mysql,Performance,Session,我对在我的游戏中处理用户数据的更有效的方法感兴趣。当有人在玩游戏时,来自服务器的数据需要不断地从数据库中查询 因此,我想知道是否更有效的方法是继续查询数据库,或者在会话中存储第一次查询的数据,然后在每次需要数据时继续使用会话 这可能是一个愚蠢的问题,因为我认为会有更好的会话,但最好100%确定:)如果数据只由相关的客户端会话更新,那么请确定,将其缓存在会话中。如果其他进程将更新它,那么您需要从数据库中重新获取它,或者制定一些方法使会话的缓存版本无效。使用会话将更有效。但是(假设会话中的数据是缓存
这可能是一个愚蠢的问题,因为我认为会有更好的会话,但最好100%确定:)如果数据只由相关的客户端会话更新,那么请确定,将其缓存在会话中。如果其他进程将更新它,那么您需要从数据库中重新获取它,或者制定一些方法使会话的缓存版本无效。使用会话将更有效。但是(假设会话中的数据是缓存)用户没有调用的任何其他脚本(更新您正在使用的数据集)都应该以某种方式使缓存无效 这意味着缓存(现在保存在会话中)应该可以被其他脚本访问。因此,在文件(或者您可以使用或)中维护缓存可能比在会话中维护缓存更容易
我认为有很多很好的缓存类,但我唯一的经验是使用Zend_缓存,它非常容易使用。它支持APC、memcached、file等作为后端(也称为存储)数据库中的共享状态,除非您准备好自己管理共享访问,这是一个很大的难题 经常更新的特定于用户的状态会进入会话(如果每次有人按下游戏中的某个键时都会发出更新,则数据库已死机) 如果您需要超高速会话体系结构,请尝试memcached