1

このクエリは、最初の実行に約 10 秒かかり、その後、連続して実行するたびに 1 分以上かかります。

SELECT qQuoteDateTime, 
       qLastSalePrice, 
       qNetChangePrice, 
       qNetChangePct,
       qShareVolumeQty 
  FROM quotes 
  WHERE qSymbol='GE'

私が使用しているテーブルには、約 2300 のレコードがあります。すべてのレコードを表示するためにかなり高速なクエリを実装している人を見たことがありますが、私は彼が使用したコードにアクセスできません。

どうすればこれをスピードアップできますか?

4

2 に答える 2

4

クエリでEXPLAINを実行して、遅い理由を確認します。最も可能性の高い原因は、qSymbol列にインデックスがないことです。列にインデックスがない場合は作成します。MySQL はテーブルの各行をスキャンする必要がなく、インデックスから対応する行を検索するだけで済むため、パフォーマンスが大幅に向上するはずです。

于 2012-05-07T09:27:48.587 に答える
3

データベースに問題があります。または、間違った木を吠えています。
ここに投稿したクエリは、指定された行数に対して非常に高速である必要があります。

まず、それがクエリであることを確認してください。他の原因ではありません。
コンソールからこのクエリを実行しようとしましたか? PHPマイアドミン? 結果は同じですか?たまたまループ内で実行していませんか?
行数は実際には 2300 ではなく 2300 ですか?

于 2012-05-07T09:30:40.037 に答える