繁体   English   中英

缓存mysql查询结果?

[英]cache mysql query result?

我在页面上使用几个mysql查询来使用mysqli prepare语句从多个表中获取数据。

让我说我有一个页面上数据库表的20个查询。 由于查询太多,我想通过将结果存储在缓存中几分钟来提高性能? 这是好主意吗? 如果是,我如何使用缓存存储结果,例如,以下查询?

$city = "Amersfoort";

if ($stmt = $mysqli->prepare("SELECT District FROM City WHERE Name=?")) {
    $stmt->bind_param("s", $city);
    $stmt->execute();
    $stmt->bind_result($district);
    $stmt->fetch();
    printf("%s is in district %s\n", $city, $district);
    $stmt->close();
}

谢谢。

如果SQL语句在处理上很便宜,那么您可能不需要缓存它们。 如果它们需要大量计算或在非常大的数据集上运行,则可能需要缓存。 请记住,缓存需要比SQL查询更快。

有几种方法可以在PHP中缓存:

  • 文件缓存,序列化数据并将其存储到名为查询哈希的文件中。 请记住,获取缓存生存期,并发访问等都很难 - 考虑使用执行它的库,即使用PEAR的CacheCache_Lite
  • memcached的
  • 共享内存作为缓存,即使用apc_add等APC函数

您还可能希望缓存整个页面或页面的一部分而不是单个查询。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM