保留 mysql 个查询结果和查询变量集,以供跨页面和会话使用

Keeping mysql query results and variables set from the queries for use across pages and sessions

我以前没用过apc_store(),也不知道要不要免费查询结果。所以我有这些问题...

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

在 select 查询后使用 free_result() 是否会否定上述缓存?

此外,如果我想设置从 select 查询中获得的变量和数组以供跨页面使用,我是否应该通过 apc_store() 等方式将变量保存在内存中? (我知道这也可以保存数组。)如果我这样做,是否释放查询结果有关系吗?现在,我在大多数页面的包含文件中设置这些变量和数组,因为它们经常被使用。这似乎不是很有效,这就是我寻找替代方案的原因。

感谢 help/advice 以最有效的方式完成上述操作。

MySQL 的“查询缓存”在 MySQL 内部。您仍然必须执行 SELECT;结果 可能 如果启用 QC 并且在这种情况下可用,则返回速度更快。

我认为 QC 不是您要找的人。

QC 将在新版本中消失。不打算使用它。

在PHP中,考虑$_SESSION。不知道是不是比apc_store好用

另请注意,PHP 中直接可用的任何内容都会将您限制在单个网络服务器上。 (这对于中小型应用程序很好,但对于非常活跃的应用程序不可行。)

为了缩放,考虑在 cookie 中存储一个小密钥,然后在数据库中的 table 中查找该密钥。这提供了仅用几毫秒的开销就可以在数据库中存储任意数量的数据。 “密钥”可能像“用户 ID”或“会话编号”或“购物车编号”等一样简单。