我网站上的一个页面加载时间太长--大约2秒。在整个代码中使用了微时间后,我已经找出了它花费的时间太长的地方,并请求帮助如何加快它的速度。
我用来查找时间的代码是
echo "<BR>3 - ".(microtime(true)-$startTime); #How long it takes for this page to do
$sqldb=open_database(); #Open the database
echo "<BR>4 - ".(microtime(true)-$startTime); #How long it takes for this page to do我的结果是
3 - 5.1140758991241
4 - 6.1172299385071因此,我推断打开数据库的函数需要1秒。用于打开数据库的函数是
//This function is to open the database
function open_database() {
//Now we will connect to the database
$sqldb=mysql_connect($_SESSION['hostname'], $_SESSION['dbusername'], $_SESSION['password']) OR die ('Unable to connect to database! Please try again later.');
mysql_select_db($_SESSION['dbname'], $sqldb); #Select which database we wish to use - in this case the customer one
if(empty($sqldb)) { //If there is no database then we have an error - MASSIVE ERROR!
header('Location:'.$_SESSION['web_site'].'/error.php');
die();
}
return($sqldb);
}请注意,在mysql_connect中使用了会话变量,因此当我更新到生产服务器时,我只需要更改一个变量。主机名是生产前服务器上的'locaLhost‘。
所以我的问题是-为什么打开数据库需要这么长时间?请注意,因为我是在生产前阶段,数据库非常小。
发布于 2012-02-05 12:42:22
会话存储在文件系统中,从文件系统读取也需要时间。如果它们被存储在php代码中,那么它们将立即可用于脚本。这可能是你的问题的一部分。
让我提供一个可能的解决方案。创建2个新文件。
dbconfig.prod.php dbconfig.dev.php
将您的数据库配置信息放入这些文件中的每个文件中,以适应正确的环境。在开发服务器上,象征性地将dbconfig.dev.php链接到生产服务器上的dbconfig.php;在生产服务器上,象征性地将dbconfig.prod.php链接到dbconfig.php,然后在版本控制中忽略dbconfig.php
现在你不必为数据库配置存储做一些非标准的事情,比如会话,它可能会解决你的计时问题。尽管IMO1秒并不是一段时间,但也有很多额外的时间。
发布于 2012-02-05 12:54:55
您到底为什么要将数据库凭证存储在会话变量中?它们应该以php变量或常量的形式存在于site.config文件中,并且您的脚本应该从那里加载它们。会话变量的存在使您可以存储基于连接的变量,而不是用于服务器端配置信息。
发布于 2018-10-03 16:30:42
另一件要看的事情是"mysql_connect“,它可能会告诉你PHP很难解析(找到) mysql主机。您是否在使用IP地址、localhost或主机名?(当用PHP连接到数据库时)如果它是一个主机名,试着把IP添加到你的hosts文件中。
https://stackoverflow.com/questions/9146960
复制相似问题