У меня есть дискуссионный вопрос, который я хотел бы задать.
У меня есть таблица с 1000 строками данных.Я хотел бы иметь возможность искать и просматривать все эти строки во внешней поисковой системе.
Я хотел бы отображать 50 результатов на странице.
Вопрос в том, должен ли я простовернуть все отфильтрованные результаты (возможно, 1000 строк данных) через мой репозиторий и сделать так, чтобы мой текучий макет начальной загрузки обрабатывал разбиение на страницы ИЛИ я должен указать своему репозиторию использовать setLimit и offset, чтобы вернуть только 50 строк данных, которые должны отображаться на текущей странице?
Изначально я полагал, что в любом случае оператор SQL будет запрашиваться при каждом вызове страницы, поэтому последний будет лучше, поскольку возврат SQL будет ограничен всего 50 строками данных, но теперь я подозреваю, что Typo3 использует некоторыевид кэширования репозитория или базы данных, который будет означать, что объемные данные базы данных вызываются и сохраняются в памяти только один раз, а жидкая пагинация будет обрабатывать все остальное.Кроме того, используя setLimit и Offset, мне пришлось бы создать собственную систему нумерации страниц.
Что, по вашему мнению, более эффективно?Должен ли я позволить оператору SQL возвращать все данные и иметь жидкую обработку пагинации, или я должен сначала ограничить оператор SQL с помощью setLimit и построить свою собственную нумерацию страниц?Или есть способ их смешать?
Дополнительная информация:
Мой поиск в репозитории SQL довольно прост.Он использует:
$query = $this->createQuery();
... плюс «соответствующий» запрос для фильтрации результатов, а затем, наконец,
return $query->execute();