我有以下脚本连接到数据库:
$db = new PDO("mysql:dbname=dbname;host=127.0.0.1;charset=utf8mb4", 'root', '',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'"));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
我正在使用xampp,并且间歇性地加载上面需要3秒多时间(如果它不执行上述操作则立即加载)。
在谷歌开发者工具中,TTFB(第一个字节的时间)也与连接数据库所需的时间相匹配。
我尝试过的事情:
可能还有其他我忘记的事情。
我使用的是谷歌浏览器,但所有浏览器都存在同样的问题。
如何快速连接数据库而不是挂3秒钟?
答案 0 :(得分:0)
这只是一个建议,而不是解决方案。 连接到数据库的速度可能会有所不同,具体取决于您使用的硬件。我注意到你在本地运行它。
我不确定你希望它有多快,但如果你想减少连接速度的时间,你应该考虑使用单例模式进行后续连接。
通常它应该类似于以下代码段:
Class Database
{
protected static $connection = null;
public static function connect ()
{
if (! is_null (self::$connection)) {
return self::$connection;
}
self::$connection = new PDO("mysql:dbname=dbname;host=127.0.0.1;charset=utf8mb4", 'root', '' ", array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8mb4'"));
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
return self::$connection;
}
}
Database::connect ()->query ('some random query'); // this will still take 3 sec
Database::connect ()->query ('some random query'); // this will run faster
P.S这不会避免第一次连接的速度,但感觉连接是开放的,以便后续连接足够快。 在采用单身模式之前,请先阅读单身模式的优缺点。