2

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

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

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

谢谢!

4

1 回答 1

2

如果您在使用 MySQL 作为数据库的 VPS 上托管网站,典型的请求如下所示:

  • 客户端向您的 VPS 上运行的 Web 服务器发出请求
  • 您在 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
于 2012-11-17T02:43:36.203 回答