2012-03-13 31 views
-4

私はいくつかの簡単なテストを実行しました:mysqlとphpで同じ複雑なクエリを実行し、それらを処理するのにかかる時間を測定しました。結果は非常に議論の余地があり、一部のクエリPHPがMySqlよりも高速に処理されることを示唆しています。なぜPHPはMySQLより高速です

理論的には、MySqlの方が高速であってはいけませんか? 私はPHP(スクリプト言語)インターフェイスが複雑なSQLクエリのパフォーマンスをどのように低下​​させるかを比較したいと思います。しかし、なぜ私の結果は別の示唆ですか?

これは平均ですが、私は各クエリを3回実行しました!

PHPコード:

<?php 
$con = mysql_connect("localhost","root",""); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 

mysql_select_db("test3", $con); 

    $start = microtime(TRUE); 
    $result = mysql_query("SELECT * FROM `test` 
    ORDER BY `test`.`test1` DESC 
    LIMIT 0,100"); 


echo "<table border='1'> 
<tr> 
<th>ID</th> 
<th>test1</th> 
<th>test2</th> 
<th>test3</th> 
<th>test4</th> 
</tr>"; 

while($row = mysql_fetch_array($result)) 
    { 
    echo "<tr>"; 
    echo "<td>" . $row['ID'] . "</td>"; 
    echo "<td>" . $row['Test1'] . "</td>"; 
    echo "<td>" . $row['Test2'] . "</td>"; 
    echo "<td>" . $row['Test3'] . "</td>"; 
    echo "<td>" . $row['Test4'] . "</td>"; 
    echo "</tr>"; 
    } 
echo "</table>"; 

$end = microtime(TRUE); 

$sqlTime = $end - $start; 


mysql_close($con); 
echo $sqlTime 
?> 

結果:レコード数に対する秒単位の時間: enter image description here

+2

テーブルのスキーマは何ですか?私は、DateAccessにインデックスがないことを賭けています。 – Quentin

+1

これはコードの1ブロックだけですが、何を比較していますか? – idstam

+0

データベースシステムを、プログラミング言語がデータベースからレコードを出力するのにかかる時間を表示することで、そのシステムを使用できる(ただし、これに限定されない)ことができるプログラミング言語と比較していますか? – mishu

答えて

1

あなたはphpmyadminを使用しているのを見ることができますが、それは値を返すためにもスクリプト化されています。これは間違いなくあなたのスクリプトの速度よりも遅いかもしれません。コマンドプロンプトからmysqlクエリを実行することを検討しましたか?これは明らかな違いをもたらすかもしれません。

+0

本当に、どうすればいいですか?ここからhttp://www.mysql.com/をダウンロードしますか?私は現時点でEasyPHPソリューションを使用しています – fn27

+0

try http://dev.mysql.com/doc/refman/5.0/en/windows-start-command-line.html –

+0

ウィンドウ環境にいる場合は、mysql binフォルダあなたのインストールで。ここで私は私の仕事をしています:開いてcmdを、私のパスを指すようにディレクトリを変更する:cd C:\ xampp \ mysql \ bin \あなたのユーザー名、パスとdbを置き換えてコピーしてコピーするmysql --user = user_name - -password = your_password db_name –

1

PHPは、MySQLよりも速く走る多数の理由がある場合もあります。私が2008年の300ドルのlenovoネットブックにMySQLサーバを置き、私のサーバでPHPを動かすと、私はさらにスピードの違いを得ることができます。

あなたの質問をどのように表現したかによって、一部のソフトウェアに関連して測定されたパフォーマンスの理解はここでは問題になります。

+0

私の証拠に基づいて、ありがとうございます、結論はできません?私は、レコードがテーブル上にあると思ったのは、PHPがスクリプト言語なので、それを処理するのに時間がかかりますね。したがって、PHPのインターフェイスは、MySQLのパフォーマンスを低下させる – fn27

+2

私はあなたの質問にも証拠がないと言いたいと思います。クエリだけを実行し、どれくらいの時間がかかるかを測定します。出力はありません。次に、配列に対して同じ操作を行います(ファイルから配列を読み込んでソートします)。あなたはそれらの時間を比較し始めるべきです。同じマシンで。各試験を100.000回繰り返す。平均してください。時間が+/- 5%の範囲で異なる場合は無視します。これは、コンピュータが別の場所で動作していたためです。 – hakre

+0

私は同じマシンで作業しています。どのように私はこれを行うことができます:**その後、配列(ファイルから配列をロードし、それをソート)で配列を同じに**私は私のPHPコードでやっている - マイクロタイムですか? – fn27

関連する問題