2011-12-11 10 views
0

私は高速(< 0.1秒)のmysql SELECTクエリを実行しますが、実行するのは初めてです。これは、3つのテーブルを結合して(インデックスを使用して)比較的単純なWHERE文を持ちます。私はphpmyadmin(常にキャッシュされないようにWHEREの数値を変更する)で手でそれを実行すると、いつも高速ですが、PHPで行の複数のコピーを実行すると、最初のものは高速です約400秒間ハングアップします。私の唯一の推測では、mysqlの接続にメモリが不足していて、高価なページングをしなければならないということです。MySQLクエリが初めて初めて実行される

私はこの動作をどのように修正することができますか?具体的な質問は、実際に接続を閉じたり再起動したりすることなく、phpから来るこれらのクエリをphpmyadminリクエストが完了したらmysqlにメモリをフラッシュするように指示し、このサウンドはメモリの問題のように聞こえますか?

+0

実際のSQLを伝えるのは難しいことではありません。 – ajreal

答えて

0

私は少なくとも私の場合は答えを見つけましたが、私は同じ問題に遭遇する将来の誰のためにもここに置いています。私が実行していたクエリには多くの結果が返され、MYSQL's query cacheは多くのオーバーヘッドを引き起こしていました。クエリを実行すると、MYSQLはそれとその出力を保存して、将来の同一の要求に迅速に応答できるようにします。私がしなければならなかったのはSQL_NO_CACHEでした。速度は正常に戻りました。入力クエリが大きかったり、結果が非​​常に大きいかどうかを調べるのは、MYSQLがいつ実行するかを決定するためのかなりのリソースが必要なためです。

関連する問題