如何解决从查询中设置 mysql 查询结果和变量,以便跨页面和会话使用
我之前从未使用过apc_store(),我也不确定是否释放查询结果。所以我有这些问题...
在 MySQL Query Cache article here 中,它说“MysqL 查询缓存是在会话之间共享的全局缓存。它将选择查询与结果集一起缓存,这使得相同的选择能够在数据获取时更快地执行从内存中。”
在选择查询后使用 free_result() 是否会否定上面提到的缓存?
另外,如果我想设置从 select 查询中获得的变量和数组以供跨页面使用,我应该通过 apc_store() 将变量保存在内存中吗? (我知道这也可以保存数组。)如果我这样做了,是否释放查询结果有关系吗?现在,我在大多数页面的包含文件中设置这些变量和数组,因为它们经常使用。这似乎不是很有效,这就是我寻找替代方案的原因。
感谢您提供有关执行上述操作的最有效方法的任何帮助/建议。
解决方法
MySQL 的“查询缓存”是 MySQL 内部的。您仍然需要执行 SELECT
;如果启用 QC 并且在这种情况下可用,结果可能会更快返回。
我认为 QC 不是您要找的。p>
QC 将在较新版本中消失。不打算使用它。
在 PHP 中,考虑 $_SESSION
。不知道是不是比apc_store
好用。
另请注意,PHP 中直接可用的任何内容都将您限制在单个网络服务器上。 (这适用于中小型应用,但不适用于非常活跃的应用。)
为了扩展,考虑在 cookie 中存储一个小键,然后在数据库的表中查找该键。这提供了在数据库中存储任意数量的数据,只需几毫秒的开销。 “密钥”可能是“用户 ID”或“会话编号”或“购物车编号”等简单的内容。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。