私の知る限り、このような「超高速」のクエリを作成する最良の方法は、作成者ごとのページごとの友達のページビューを追跡する要約テーブルを作成することです。
トリガーを使用して最新の状態に保つことをお勧めします。その後、集計はすでに完了しており、最も閲覧されたページを取得するための簡単なクエリです。サマリーテーブルに適切なインデックスがあることを確認して、データベースを並べ替えて最も多く表示する必要がないようにすることができます。
サマリーテーブルは、ほとんどの場合読み取り環境で集計タイプのクエリのパフォーマンスを維持するための鍵です。更新が発生したとき(頻度が低い)、クエリが発生したとき(頻繁)に、事前に作業を行います。
統計が完全である必要はなく、書き込みが実際にかなり頻繁に行われる場合(これはおそらくページビューのようなものの場合です)、メモリ内のビューをバッチ処理してバックグラウンドで処理できるため、友達は彼らはページを表示するので、要約テーブルを最新の状態に保つことに打撃を与える必要はありません。このソリューションは、データベースでの競合も減らします(サマリーテーブルを更新するプロセスが少なくなります)。