我知道这是一个奇怪的问题,但我有两台服务器,一台是 vps,另一台是 mysql 主机。现在我的问题是我想尝试降低 vps 的负载,因为它是启动 128mb vps。
一个小问题,让 MySQL 服务器像缓存一样工作需要什么,我无法访问 MySQL 服务器上的任何东西,除了我给定的数据库。
这需要一个单独的数据库吗?请告诉我,如果可能的话,我可以要求我的主机添加另一个数据库。
谢谢!
如果您在使用 MySQL 作为数据库的 VPS 上托管网站,典型的请求如下所示:
如果不先通过 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