iT邦幫忙

0

PHP網頁讀取資料庫變慢

各位大大您好:
PHP7.0+IIS+MySQL架構
想請問我寫的網頁若未讀取資料庫(MySql)網頁重新整理的速度是很快的,但只要有資料庫讀取後,網頁整個便很慢(資料並不多),想請問是甚麼問題,要如何檢查,謝謝!
網址:http://www.ee.nsysu.edu.tw/key/c1.php?date=2018-02
我是用MySQL server5.5並用phpMyAdmin管理
主要再帶入資料就會跑很慢,接下來都是用ajax去讀另外的php檔,
是這行讀取太多資料嗎@ @?

$sql1="select * from ".changeMonth($yue)." where bdate= :Bdate"; 
$conn= new PDO("mysql:host=$hostdb;dbname=$namedb",$userdb,$passdb);
$conn->exec("SET CHARACTER SET utf8");
$sql1="select * from ".changeMonth($yue)." where bdate= :Bdate"; 
$sql =$conn->prepare($sql1);
$ar_val=array('Bdate'=>$Y."-".$yue."-".$singleday);
    	                if($sql->execute($ar_val)){
    	     	        $row =$sql->fetchALL();  
    	     	        $num=count($row);
    	     	                	
    	                }
            
    	    foreach($row as $key=>$showit){
    	   
    	    if ($key<5)
    	    
    	       {
    	   
    	        echo '<a id="'.$showit['識別碼'].'" onclick="showblock(this)">';
    	        echo "•".$showit['timest']." ".$showit['clr']."<br></a>";
              }
            
            elseif($key==5)
               {
            	$numshow=$num-5;
                echo '<a class="'.$Y."-".$yue."-".$singleday.'" onclick="showall(this)">';
                echo '•還有'.$numshow."個訊息</a>"; 
            	}
           else break;
                                 
            } 
     
看更多先前的討論...收起先前的討論...
你沒有跟資料庫有關的code,這樣沒人知道你到底做了什麼事。
Albert iT邦高手 1 級 ‧ 2018-03-12 21:35:17 檢舉
這是資料庫 select 時給他的條件需要運算過
資料成長後搜尋太多
上次清大資工所的問題很類似
mayyola iT邦新手 3 級 ‧ 2018-03-12 23:30:08 檢舉
我修改$sql1="select 識別碼, timest, clr from ".changeMonth($yue)." where bdate= :Bdate"; 可是還是一樣跑很慢>"<
所以你的資料總共有幾筆?
mayyola iT邦新手 3 級 ‧ 2018-03-13 08:47:51 檢舉
12個資料表,其中只有一個資料表有19筆資料,其他暫無資料
檢查是不是真的資料庫太慢,最快的方法就是把你的 SQL語法丟到資料庫內跑,你看他會花多久時間
確認這個時間你再去比較是不是因為PHP語法有問題
你並沒有做任何的測試,光看這幾段程式碼真的蠻難判斷的,就這麼說好了,有人把資料庫放 PCIE SSD 有人放 SSD 有人放 HDD 有人放 USB
你認為相同的語法,誰的資料庫讀取會比較快,這就是客觀條件,沒講客觀條件,要如何判斷問題呢
mayyola iT邦新手 3 級 ‧ 2018-03-13 12:18:34 檢舉
我剛剛把SQL語法丟到資料庫跑是非常快的,我把資料放在HD,應該說我剛光連資料庫(在網頁上跑)不知道為什麼就會跑得有點慢><謝謝
weiclin iT邦高手 4 級 ‧ 2018-03-13 13:09:10 檢舉
你如果把資料庫的位址從 localhost 改成 127.0.0.1 會變快嗎?
mayyola iT邦新手 3 級 ‧ 2018-03-13 13:33:07 檢舉
w大好了..為什麼會這樣@@?
weiclin iT邦高手 4 級 ‧ 2018-03-13 13:35:55 檢舉
我好久以前遇過一樣的問題, 原因:
https://stackoverflow.com/questions/11663860/mysql-connect-localhost-127-0-0-1-slow-on-windows-platform

1 個回答

0
haoming
iT邦好手 1 級 ‧ 2018-03-13 08:56:50

直接把指令在 mysql 上面 執行的效率如何?
如果直接執行的效率很好,有可能問題在 mysql <--> web server 的問題
如果是這樣 , 可以先試試看 在 mysql server 的 /etc/hosts 加上 web server 的位置
如果是 windows server, 就去改相對位置的 hosts設定

mayyola iT邦新手 3 級 ‧ 2018-03-13 13:33:21 檢舉

謝謝h大回覆:)

我要發表回答

立即登入回答