Приложение должно отображать записи, которые извлекаются из списка в алфавитном порядке, используя некоторые критерии, заданные пользователем. Список выбирается из двух или более таблиц. Пользователь может запросить следующую или предыдущую страницу, или конкретную страницу, указав свой номер. Одна веб-страница может содержать до 20 записей. Смотрите мое демо на http://193.226.19.29:1200
Классические веб-инструменты (например, php и mysql): узкое место
Если пользователь запрашивает страницу 5000, сервер базы данных должен выбрать первые 100000 записей. Предложение LIMIT остановит процесс поиска после достижения этого предела, а скрипт php получит только последние 20 записей. Если мы запрашиваем последние страницы списка, процесс поиска может занять несколько минут. Как ускорить процесс поиска, чтобы получить 20 записей из середины / конца списка?
Мое решение использует язык C
Мой веб-сервер читает во время запуска весь список в основной памяти, затем он готов к принятию соединений. Он может начать процесс поиска с заданной позиции, а затем получить необходимые записи. Веб-сервер работает на Celeron 768 МГц, 256 МБ памяти, операционной системе Linux Fedora.
Я читал мнение многих веб-программистов об использовании языка C для веб-приложений
Почему вы не используете C для своих веб-приложений?
Насколько популярен C ++ для создания веб-сайтов / веб-приложений?
Изначально я применил другой критерий поиска (имя начинается с ...), и процесс поиска был очень быстрым - около 0,015 секунды. Теперь процесс поиска иногда замедляется, если вы выполняете имя поля, содержащее ... потому что при отображении первой страницы веб-сервер проверяет весь список.
Проблема поиска была легко решена с помощью C - по крайней мере, с моей точки зрения. Теперь мне нужно найти элегантное решение для решения проблемы обновления, то есть простое в написании и приемлемое время выполнения.
Кто-нибудь знает некоторые решения, основанные на классических веб-инструментах, для решения этой проблемы таким образом, чтобы время ответа было приемлемым для любого запроса?