我的網站上的某個頁面加載時間過長 - 大約2秒。在整個代碼中使用microtime之後,我已經計算出它花費的時間太長,並要求如何加速它的幫助。php,mysql,開放數據庫花費時間過長
我用於查找倍的代碼是
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'。
所以我的問題是 - 爲什麼打開數據庫需要這麼久?請注意,因爲我處於試生產階段,所以數據庫非常小。
注意:會話*可能*存儲在文件系統中。不同的後端可用。 – Borealid 2012-02-05 04:44:09
是的,但通常根據我的經驗,這些不同的後端在數據庫中。由於他沒有連接到數據庫,我認爲他會將會話存儲在文件系統中。 – thenetimp 2012-02-05 04:48:19
實際上,如果他在訪問會話存儲時遇到性能問題,我推薦的第一件事就是使用memcached支持的會話... – Borealid 2012-02-05 04:50:08