Индекс — дополнительная структура для ускорения поиска и некоторых сортировок или соединений. Он полезен, когда позволяет прочитать существенно меньше данных, чем полный просмотр таблицы.
Разделите время запроса приложения на этапы: очередь, код, соединение с БД, выполнение SQL и получение результата. Причину подтверждают измерения, а не предположение по медленной странице.
N+1 возникает, когда сначала загружается список из N объектов, а затем для каждого выполняется отдельный запрос к связанным данным. Вместо небольшого числа запросов получается 1 + N.
Блокирующая для event loop операция долго не возвращает ему управление. Это бывает не только при I/O: построение списка из миллиарда элементов также занимает поток и огромный объём памяти.
Выберите реальную проблему и покажите измерения: перекос распределения, лишние пересылки данных, плохую статистику, spill на диск или ожидание ресурсов.
Сначала уточнить смысл аллокаций, затем разобрать реальный кейс. Как говорить о выделении памяти, профилировании и результате, не подменяя их распределением бюджета.