ホームページ  >  記事  >  バックエンド開発  >  この単純な mysql ソートの効率を向上させるにはどうすればよいでしょうか? [

この単純な mysql ソートの効率を向上させるにはどうすればよいでしょうか? [

WBOY
WBOYオリジナル
2016-06-23 13:38:311079ブラウズ

select unique A.name from table A order by (select sum(num) as num from table where name=A.name) desc

テーブルでは、name フィールドが繰り返され、num フィールドは数値です。 。重複しない名前を表示し、同じ名前の num の合計数で並べ替えます。 。
上記の SQL 結果は正しいですが、非常に遅いです。レコードが 10,000 件を超えると、ソートが非常に遅くなります。 。
この並べ替え機能をすばやく実現するにはどうすればよいですか?


ディスカッションへの返信 (解決策)

select name, sum(num) as xxx from table group by name order by xxx desc

統計は高速ではありません。冗長な統計テーブルを追加するのが正しい方法です。

select name, sum(num) as xxx from table group by name order by xxx desc



ありがとう、使いやすいです。 。以前よりもはるかに速くなりました。 。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。