我目前正在编写一个PHP应用程序,我注意到我的页面加载速度有点慢。我需要约2秒(准确地说是2.0515811443329)。存储数据库(PDO)连接
我已经查明了瓶颈是什么,它是我创建到我的MySQL数据库的PDO连接的部分。
我'连接()'方法不会做任何exoctic的东西。它只是看起来像这样:
public function connect ($database, $host, $username, $password)
{
try
{
$this->db = new \PDO("mysql:dbname=".$database.";host=".$host, $username, $password);
if (!$this->db)
{
throw new \Exception('Failed to connect to the database!');
}
$this->db->setAttribute(\PDO::ATTR_ERRMODE, \PDO::ERRMODE_EXCEPTION);
}
catch (\Exception $e)
{
echo '<strong>Exception: </strong>'.$e->getMessage();
return false;
}
return true;
}
所以,当我注释掉调用“连接()”方法,那么我的页面加载:0.035506010055542
这是一个巨大的差异。我可以想象,创建与数据库的连接确实需要一些时间,但需要超过1.5秒......我不确定这是否正常?
如果这是正常的,它占用了这段时间,那么有没有办法来存储数据库连接?就像把它放在会话中一样?实际上,据我所知,将它存储在会话中是不可能的。但这将是理想的解决方案。将连接存储在某处直到用户关闭浏览器。
无论如何,我的PDO/MySQL有问题吗?我可以简单地存储连接资源吗?这样我就不必每次都重新连接到我的数据库每个新页面?
PS。我在本地主机(Windows)上完成了这一切。
你连接的主机是什么?如果它是一个通过TCP的远程主机,你可能会得到一个缓慢的DNS查找或类似 –
@Michael我想我编辑我的文章,当你写这个。我在帖子末尾添加了它。本地主机和Windows。 – w00
如果只使用命令行'mysql -u username -p password',连接到localhost是否也需要很长时间? –