2011-12-26 13 views
1

MySQLクエリに問題があります。このクエリを実行すると、行を返すのに10秒以上かかります。しかし、もし私の限界を29に変更すれば、それは1秒未満で返されます。私の質問は、私の実装とクエリがうまくいきますか、ここで間違いを犯してこの問題を引き起こしていますか?PHP MySQLクエリの行が非常に遅く返される

<? 

try 
     { 
      $con = mysql_connect("XXX.XXX.XXX.XXX","XXX","XXX"); 
      if (!$con) 
       { 
        die('Could not connect: ' . mysql_error()); 
       } 

      mysql_select_db("bis_co", $con); 

      $query = "SELECT Name, Value FROM `bis_co`.`departments` LIMIT 31"; 

      $result = mysql_query($query) or die(mysql_error()); 

      $row = mysql_fetch_array($result); 
      while($row = mysql_fetch_assoc($result)){ 
       echo $row['Name'] . "<br />"; 
      } 


     mysql_close($con); 
     } 
    catch(Exception $e) 
     { 
      echo $e; 
     } 
?> 
+0

テーブルには何行ありますか? – abcde123483

+1

これをあなたのMYSQL DBで直接実行し、出力を表示してください: 'EXPLAIN SELECT名前、値FROM bis_co.departments LIMIT 31' – Virendra

+0

@ulvundそれは今すぐ51レコードあります。 @Virendraを実行すると、 '1 SIMPLE部門ALL NULL NULL NULL NULL 51 'が返されます。列のIDがselect_type、table、type、possible_keys、key、key_len、ref、rows、Extra(nullではありませんが値はありません) – atrljoe

答えて

3

あなたは

$row = mysql_fetch_array($result) 

声明を退治してみてください可能性があります。配列の場合が返されます。すでにmysql_select_db文でデータベース名を設定しているので、あなたはまた、

"SELECT Name, Value FROM `departments` LIMIT 31" 

にクエリ文字列を変更することができます。しかし、これらのどれもあなたの問題を引き起こしてはならない。それはテーブルの問題のようだ。あなたはmysqliと準備文でそれを試しましたか?

関連する問題