Sejauh yang saya tahu, cara terbaik untuk membuat kueri seperti itu "secepat kilat", adalah membuat tabel ringkasan yang melacak tampilan halaman teman per halaman per pembuat.
Anda mungkin ingin tetap up-to-date dengan pemicu. Kemudian agregasi Anda sudah selesai untuk Anda, dan ini adalah kueri sederhana untuk mendapatkan halaman yang paling banyak dilihat. Anda dapat memastikan bahwa Anda memiliki indeks yang tepat pada tabel ringkasan, sehingga database bahkan tidak perlu mengurutkan untuk mendapatkan yang paling banyak dilihat.
Tabel ringkasan adalah kunci untuk mempertahankan kinerja yang baik untuk kueri tipe agregasi di lingkungan yang paling banyak dibaca. Anda melakukan pekerjaan di muka, ketika pembaruan terjadi (jarang) dan kemudian kueri (sering) tidak perlu melakukan pekerjaan apa pun.
Jika statistik Anda tidak harus sempurna, dan penulisan Anda sebenarnya cukup sering (yang mungkin terjadi untuk sesuatu seperti tampilan halaman), Anda dapat mengumpulkan tampilan dalam memori dan memprosesnya di latar belakang, sehingga teman-teman tidak 't harus mengambil hit menjaga tabel ringkasan up-to-date, karena mereka melihat halaman. Solusi tersebut juga mengurangi pertentangan di database (lebih sedikit proses yang memperbarui tabel ringkasan).