0

サーバーへのすべてのリクエストが格納されるテーブルがあります。
リクエストごとに、禁止されているかどうかを確認します。
たとえば、次のクエリです。

select * from requests where request_sessID = '4bc0331d983000902b4718c80f12e9b3' AND request_time > (UNIX_TIMESTAMP() - 3600) AND request_isEnable = 1

また、エンジンを InnoDB から MyISAM に、row_format を Dynamic に設定しましたが、何も変わりませんでした。
ハードウェアは非常に強力ですが、実行に約 1 分かかりました。
私はプログラマーであり、mysql の初心者
です。このクエリを高速化するにはどうすればよいですか?
前もって感謝します

4

1 に答える 1

1

テーブルにはいくつのエントリがありますか? 何十億?

リクエストを高速化できるとは思いませんが、テーブルにカバーされたインデックスを作成する必要があります。

次のようになるかもしれませんが、正しい順序でフィールドを記述するために、最初に理論を確認する必要があります (最も可能性の高いフィールドを最初に...) (上記のリンク)

ALTER TABLE requests
  ADD INDEX (request_sessID, request_time, request_isEnable);
于 2012-10-21T10:57:07.427 に答える