Несколько способов ускорить запрос под пагинацию в MySQL:
Ограничить количество разрешённых страниц в представлении пагинации или вовсе не использовать OFFSET. www.eversql.com
Использовать метод Seek. www.eversql.com Нужно найти уникальный столбец или набор столбцов, который идентифицирует каждую строку. www.eversql.com Затем вместо OFFSET использовать это уникальное значение как закладку, которая представляет положение последней выгруженной строки, и запрашивать следующий набор строк, начиная с этого положения в предложении WHERE. www.eversql.com
Применить метод отложенного соединения (deferred join). www.iheavy.com Он позволяет использовать только первичный ключ для выборки данных. www.iheavy.com
Добавить новое поле в таблицы для последующей сортировки по нему. habr.com Это актуально, если в таблице нет сортируемого уникального поля. habr.com
Создать индексы для поля, которое будет в основном использоваться для процесса поиска. stackoverflow.com Если это первичный ключ для таблицы, индекс создавать не нужно, он будет создан автоматически. stackoverflow.com
Выбор метода зависит от конкретных условий и требований проекта.
Примеры полезных ответов Поиска с Алисой на вопросы из разных сфер. Вопросы сгенерированы нейросетью YandexGPT для актуальных тем, которые определяются на базе обобщённых запросов к Поиску с Алисой.