Så vidt jeg ved, er den bedste måde at lave en forespørgsel som den "lynhurtige" ved at oprette en oversigtstabel, der sporer vennesidevisninger pr. side pr. skaber.
Du vil sikkert gerne holde den opdateret med triggere. Så er din sammenlægning allerede gjort for dig, og det er en simpel forespørgsel for at få de mest sete sider. Du kan sikre dig, at du har ordentlige indekser på oversigtstabellen, så databasen ikke engang behøver at sortere for at få det mest sete.
Oversigtstabeller er nøglen til at opretholde en god ydeevne for forespørgsler af aggregeringstype i miljøer, der overvejende læses. Du udfører arbejdet på forhånd, når opdateringerne forekommer (sjældent), og så behøver forespørgslerne (hyppige) ikke at udføre noget arbejde.
Hvis din statistik ikke behøver at være perfekt, og dine skrivninger faktisk er ret hyppige (hvilket sandsynligvis er tilfældet for noget som sidevisninger), kan du samle visninger i hukommelsen og behandle dem i baggrunden, så vennerne ikke 'ikke nødt til at tage et slag for at holde oversigtstabellen opdateret, når de ser sider. Denne løsning reducerer også strid om databasen (færre processer, der opdaterer oversigtstabellen).