Доколкото знам, най-добрият начин да направите заявка като тази "светкавично бързо" е да създадете обобщена таблица, която проследява показванията на страници на приятели на страница за създател.
Вероятно бихте искали да го поддържате актуален с тригери. Тогава вашето агрегиране вече е направено вместо вас и е проста заявка, за да получите най-гледаните страници. Можете да се уверите, че имате правилни индекси в обобщената таблица, така че базата данни дори да не трябва да сортира, за да получи най-гледаното.
Обобщените таблици са ключът към поддържането на добра производителност за заявки от тип агрегиране в среди, предимно за четене. Вие вършите работата предварително, когато се появят актуализациите (рядко) и след това заявките (чести) не трябва да вършат никаква работа.
Ако статистиката ви не трябва да е перфектна и вашите записи всъщност са доста чести (което вероятно е случаят с нещо като изгледи на страници), можете да групирате изгледи в паметта и да ги обработвате във фонов режим, така че приятелите да не Не трябва да се опитват да поддържат обобщената таблица актуална, докато преглеждат страниците. Това решение също така намалява конкуренцията в базата данни (по-малко процеси, актуализиращи обобщената таблица).