O ile mi wiadomo, najlepszym sposobem na wykonanie zapytania takiego „błyskawicznie” jest utworzenie tabeli podsumowującej, która śledzi wyświetlenia stron znajomych na stronę na twórcę.
Prawdopodobnie chciałbyś, aby był na bieżąco z wyzwalaczami. Wtedy Twoja agregacja jest już wykonana i jest to proste zapytanie, aby uzyskać najczęściej oglądane strony. Możesz upewnić się, że masz odpowiednie indeksy w tabeli podsumowań, aby baza danych nie musiała nawet sortować, aby uzyskać najczęściej oglądane.
Tabele podsumowujące są kluczem do utrzymania dobrej wydajności zapytań typu agregującego w środowiskach głównie do odczytu. Pracę wykonujesz z góry, kiedy pojawiają się aktualizacje (rzadko), a wtedy zapytania (częste) nie muszą wykonywać żadnej pracy.
Jeśli twoje statystyki nie muszą być doskonałe, a twoje zapisy są faktycznie dość częste (co prawdopodobnie ma miejsce w przypadku czegoś takiego jak odsłony), możesz grupować wyświetlenia w pamięci i przetwarzać je w tle, aby znajomi nie nie muszą brać udziału w utrzymywaniu aktualności tabeli podsumowań, ponieważ przeglądają strony. To rozwiązanie zmniejsza również rywalizację o bazę danych (mniej procesów aktualizujących tabelę podsumowań).