1

Pythonでテーブル全体を調べる必要があります。私は「SSCursor」を介してMySQLdbを使用していますが、PHPのものよりもはるかに低速です。

PHP 5.3.5

$result = mysql_query("SELECT * FROM anytable");
while($row = mysql_fetch_assoc($result)){
#do stuff

}

Python2.7

cursor.execute("SELECT * FROM anytable")
for row in cursor:
    pass

結果

PHP:5秒CPU約35%、Python:25秒CPU 100%

MySQLdbはただひどいですか、それとも私は何か間違ったことをしていますか?MySQLdbの場合、パフォーマンス/同じ機能を向上させるために代わりに何を使用できますか?

4

2 に答える 2

0

Python の結果を stdout に出力していますか? すべてのデータを標準出力 (コンソール) に出力している場合、この種のパフォーマンスの違いが予想されるためです。PHP コードは通常、コンソールへの stdout 出力なしで実行されます。問題は、コンソールへの出力には、テキストがウィンドウによってリアルタイムでスクロールされるため、コンピューターが何百万ものピクセルを描画して移動する必要があることです。

そうでない場合は、MySQLdb が実際に問題を抱えているように見えるため、より多くの情報を入力して、人々が最適化するための回避策を見つけられるようにする必要があります。

于 2011-11-25T19:28:35.453 に答える
-2

SQLAlchemyモジュールを使用できます。メモリと CPU の使用率を向上させるために、クワイアを最適化できます。

参考http ://www.sqlalchemy.org/features.html

于 2011-11-25T19:11:08.790 に答える