Tbl_responses
5,000のレコードがありますmysql Distinctを最適化する方法は?
- ID
- 応答
- MSGID
- ユーザ名
を持っています。 800件の回答が "zac1987"によって投稿されました。 "zac1987"によって投稿された800件の回答のうち、msgid
の違いが30件あります。
SELECT DISTINCT msgid
FROM Tbl_responses
WHERE username = 'zac1987';
現在、Explain SQLは800行が有効であることを示しています。 30行だけが有効になるようにクエリを最適化する方法は?私はループを避けるための解決策があると思う/ 800レコードをフィルタリング...ちょうど私のブログに表示されているJOIN句の問題とWHERE句を置き換えるのと同じように... ye5.blogspot.com/2011/07/optimize-faster-mysql-query-speed.html私はいくつかの専門家を避けるために800レコードをループします。
私の他の質問 - なぜこのページhttp://forge.mysql.com/wiki/Top10SQLPerformanceTips「GROUP BYを使用しているときにDISTINCTを使用しないでください」と言っていると、クエリの処理速度が低下しますか?しかし、私はテストして、結果は遅くならなかった、なぜですか?
SELECT msgid
FROM Tbl_responses
WHERE username = 'zac1987' GROUP BY msgid;
そして、いくつかの条件と同様に、ユーザー名= 'zac1987' AND ID = 'XYZ入れパフォーマンス
私は理解していない、別れを意味し、グループバイは同じ時間を使用しますか? – Ibu
私はページ上の文章も理解できません。同時に、distinctとgroupbyの両方を同時に使うことを意味すると思います... – zac1987
あなたは一度に1つを使い、どちらが速いかを見てください。 – Ibu