Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/2.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
保留从查询中设置的mysql查询结果和变量,以便跨页面和会话使用_Mysql_Variables_Memory Management_Global Variables_Apc - Fatal编程技术网

保留从查询中设置的mysql查询结果和变量,以便跨页面和会话使用

保留从查询中设置的mysql查询结果和变量,以便跨页面和会话使用,mysql,variables,memory-management,global-variables,apc,Mysql,Variables,Memory Management,Global Variables,Apc,我以前从未使用过apc_store(),也不确定是否释放查询结果。所以我有这些问题 在一个例子中,它说“MySQL查询缓存是会话间共享的全局缓存。它将select查询与结果集一起缓存,这使相同的select在从内存中获取数据时执行得更快。” 在select查询之后使用free_result()是否会否定上面提到的缓存 另外,如果我想设置从select查询获得的变量和数组,以便跨页面使用,那么我是否应该通过apc_store()将变量保存在内存中?(我知道这也可以保存数组。)如果我这样做,释放查询

我以前从未使用过apc_store(),也不确定是否释放查询结果。所以我有这些问题

在一个例子中,它说“MySQL查询缓存是会话间共享的全局缓存。它将select查询与结果集一起缓存,这使相同的select在从内存中获取数据时执行得更快。”

在select查询之后使用free_result()是否会否定上面提到的缓存

另外,如果我想设置从select查询获得的变量和数组,以便跨页面使用,那么我是否应该通过apc_store()将变量保存在内存中?(我知道这也可以保存数组。)如果我这样做,释放查询结果是否重要?现在,我在大多数页面的包含文件中设置这些变量和数组,因为它们经常被使用。这似乎不是很有效,这就是为什么我在寻找一个替代品

感谢您就如何最有效地执行上述操作提供的帮助/建议。

MySQL的“查询缓存”是MySQL内部的。您仍然需要执行
选择
;如果QC在这种情况下启用并可用,结果可能会更快返回

我不认为QC是你想要的

新版本的QC正在消失。不要计划使用它

在PHP中,考虑<代码> $$会话< /代码>。我不知道它是否比apc_store更适合您使用

另外请注意,PHP中直接可用的任何内容都会将您限制为一个Web服务器。(这适用于中小型应用程序,但不适用于非常活跃的应用程序。)


缩放时,考虑在cookie中存储一个小密钥,然后在数据库中的一个表中查找该密钥。这使得在数据库中存储任意数量的数据只需要几毫秒的开销。“密钥”可以是简单的“用户id”或“会话号”或“购物车号”等。

那么,使用cookie密钥策略将涉及以json格式或其他方式存储具有该密钥的所有变量?优点是只有一个数据库查找?我确实建立了apc_商店,它运行得很好,但我明白你关于扩展的意思。@jamminjames-是的,这就是我的意思。至于扩展:如果你的应用程序太忙,单台服务器无法处理,那么会话和应用商店将无法使用。好的,明白了。谢谢