Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP;使用会话还是重复使用查询?_Php_Mysql_Performance_Session - Fatal编程技术网

PHP;使用会话还是重复使用查询?

PHP;使用会话还是重复使用查询?,php,mysql,performance,session,Php,Mysql,Performance,Session,我对在我的游戏中处理用户数据的更有效的方法感兴趣。当有人在玩游戏时,来自服务器的数据需要不断地从数据库中查询 因此,我想知道是否更有效的方法是继续查询数据库,或者在会话中存储第一次查询的数据,然后在每次需要数据时继续使用会话 这可能是一个愚蠢的问题,因为我认为会有更好的会话,但最好100%确定:)如果数据只由相关的客户端会话更新,那么请确定,将其缓存在会话中。如果其他进程将更新它,那么您需要从数据库中重新获取它,或者制定一些方法使会话的缓存版本无效。使用会话将更有效。但是(假设会话中的数据是缓存

我对在我的游戏中处理用户数据的更有效的方法感兴趣。当有人在玩游戏时,来自服务器的数据需要不断地从数据库中查询

因此,我想知道是否更有效的方法是继续查询数据库,或者在会话中存储第一次查询的数据,然后在每次需要数据时继续使用会话


这可能是一个愚蠢的问题,因为我认为会有更好的会话,但最好100%确定:)

如果数据只由相关的客户端会话更新,那么请确定,将其缓存在会话中。如果其他进程将更新它,那么您需要从数据库中重新获取它,或者制定一些方法使会话的缓存版本无效。

使用会话将更有效。但是(假设会话中的数据是缓存)用户没有调用的任何其他脚本(更新您正在使用的数据集)都应该以某种方式使缓存无效

这意味着缓存(现在保存在会话中)应该可以被其他脚本访问。因此,在文件(或者您可以使用或)中维护缓存可能比在会话中维护缓存更容易


我认为有很多很好的缓存类,但我唯一的经验是使用Zend_缓存,它非常容易使用。它支持APC、memcached、file等作为后端(也称为存储)

数据库中的共享状态,除非您准备好自己管理共享访问,这是一个很大的难题

经常更新的特定于用户的状态会进入会话(如果每次有人按下游戏中的某个键时都会发出更新,则数据库已死机)

如果您需要超高速会话体系结构,请尝试memcached