首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php、mysql、打开数据库时间太长

php、mysql、打开数据库时间太长
EN

Stack Overflow用户
提问于 2012-02-05 12:38:20
回答 3查看 1.4K关注 0票数 0

我网站上的一个页面加载时间太长--大约2秒。在整个代码中使用了微时间后,我已经找出了它花费的时间太长的地方,并请求帮助如何加快它的速度。

我用来查找时间的代码是

代码语言:javascript
复制
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

我的结果是

代码语言:javascript
复制
3 - 5.1140758991241
4 - 6.1172299385071

因此,我推断打开数据库的函数需要1秒。用于打开数据库的函数是

代码语言:javascript
复制
//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‘。

所以我的问题是-为什么打开数据库需要这么长时间?请注意,因为我是在生产前阶段,数据库非常小。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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秒并不是一段时间,但也有很多额外的时间。

票数 2
EN

Stack Overflow用户

发布于 2012-02-05 12:54:55

您到底为什么要将数据库凭证存储在会话变量中?它们应该以php变量或常量的形式存在于site.config文件中,并且您的脚本应该从那里加载它们。会话变量的存在使您可以存储基于连接的变量,而不是用于服务器端配置信息。

票数 0
EN

Stack Overflow用户

发布于 2018-10-03 16:30:42

另一件要看的事情是"mysql_connect“,它可能会告诉你PHP很难解析(找到) mysql主机。您是否在使用IP地址、localhost或主机名?(当用PHP连接到数据库时)如果它是一个主机名,试着把IP添加到你的hosts文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9146960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档