gpt4 book ai didi

php - 使用 MySQL 服务器作为 "cache"

转载 作者:行者123 更新时间:2023-11-29 02:30:50 25 4
gpt4 key购买 nike

我知道这是一个奇怪的问题,但我有两台服务器,一台是 vps,另一台是 mysql 主机。现在我的问题是我想尝试降低 vps 上的负载,因为它是一个启动 128mb vps。

小问题,要使 MySQL 服务器像缓存一样工作需要什么,我无法访问 MySQL 服务器上的任何内容,除了我给定的数据库。

这需要单独的数据库吗?请告诉我,如果可能的话,我可以要求我的主机添加另一个数据库。

谢谢!

最佳答案

如果您在使用 MySQL 作为数据库的 VPS 上托管一个网站,一个典型的请求是这样的:

  • 客户端向在您的 VPS 上运行的 Web 服务器发出请求
  • 您在网络服务器内运行的脚本进行数据库查询
  • 数据库返回查询结果
  • 您的脚本格式化并打印结果
  • 结果出现在浏览器(客户端)

如果不先通过 Web 服务器,就无法使请求命中数据库。

如果你想减轻 VPS 上的负载,你可以让你的脚本运行得更快。大多数 Web 应用程序最耗时的部分是进行数据库查询和等待结果。在很多情况下,您可以通过使用像 memcached 这样的内存缓存来缓存数据库查询的结果在 VPS 上来避免这种情况。 .不过要小心内存设置 - 请务必将最大分配内存设置为足够低的设置,因为您的服务器内存很少。

这是一个缓存 SELECT 查询结果的基本示例:

$cache = new Memcached();
$cache->addServer('localhost', 11211);

$article_key = "article[$article_id]";
$article = $cache->get($article_key);

if ($article === FALSE) {
$statement = $conn->prepare("SELECT * FROM articles WHERE id = :id");
$statement->exec(array('id' => $article_id));
$result = $statement->fetchAll(PDO::FETCH_ASSOC);
if (count($result) === 0) {
// return a 404 status
}
$article = $result[0];
$cache->set($article_key, $article);
}

// display the article

关于php - 使用 MySQL 服务器作为 "cache",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13427061/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com