Медленная загрузка страниц профилей пользователей

Давайте проверю планы выполнения этих запросов в Meta.

Запросы в Meta выполняются довольно быстро, но я понимаю, как они могут работать медленно на слабых базах данных. Мы используем ActiveRecord, и код довольно чистый, но сгенерированный SQL-код получается довольно запутанным.

Если писать SQL вручную, мы можем заставить запрос использовать существующие индексы и значительно оптимизировать его:

До

После

В оптимизированном запросе мы получаем только сообщения пользователя, ограничивая цикл сообщений, чтобы соединение происходило не слишком поздно.

Поэтому я считаю, что мы можем добиться лучшей производительности без добавления накладных расходов на индексы.

7 лайков