私は迷っています。私は約100K行のテーブルを持っています。このテーブルの結果を照会すると、通常約2ms程度の結果が得られます。しかし、ORDER BYのパフォーマンスを使うたびに、約120msの岩のように落ちます。私はMySQL ORDER BY Optimizationのページを読んだが、私はすべてを理解するとは言えない。特にインデックスは私には不透明です。 SELECT *
FRO
次のクエリを使用して、異なる列選択で選択サブクエリを繰り返すので、より洗練された方法で書くことができます。最初の選択クエリはコード内で2回繰り返されますが、列の選択が異なります。 SET @date1 = '2010-01-06';
SET @date2 = '2010-07-01';
SET @qdate = '2010-07-01';
SET @period = 'WEEK';
私が持っているように書かれているクエリのたくさん: select thread_id as topic_id,title as topic
,
isnull((select count(*) from tblmessages b where thread_id=a.thread_id and is_approved='Y' and sort_level>1
EDIT:以下の質問には、観察結果を説明する間違いがありました。私は質問を削除することができますが、これはまだ誰かにとって有用かもしれません。間違いは、サーバー上で実行されている実際のクエリはSELECT * FROM t(それはばかげていた)だと私は考えていたのだと思っていた。それはSELECT t.* FROM tだ。 tobyobrianの答えとそのコメントを参照してください。 次のように、