ホームページ >バックエンド開発 >PHPチュートリアル >この単純な mysql ソートの効率を向上させるにはどうすればよいでしょうか? [
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