Почему сайт долго грузится при первом заходе и между перерывами запросов страниц
Бывают случаи, когда сайт разработан на локальном хостинге и готов к переносу на рабочий хостинг, однако на рабочем хостинге видны задержки при открытии страниц (сайт долго грузится), которых не было на локальном хостинге. Причем такие задержки носят непостоянный характер – возникают задержки при первом заходе и через перерывы между запросами страниц. В чем причина и как устранить данную проблему?
Ответ на вопрос может занять время даже у опытных специалистов. Обычно приходится выполнить множество операций тестирования и изучения всевозможных логов сайта для поиска ответа, однако и это может не помочь. Ведь задержки стали проявляться только на рабочем хостинге, а на локальном - все работает быстро.
Нужно сказать, что причин может быть множество, но наиболее вероятная – плохая оптимизация запросов к базе данных или ее отсутствие. Такие запросы порождают передачу больших объемов данных между сайтом и базой данных, тем более если они размещаются на разных серверах. Причем здесь снижают скорость как сами запросы, так и объем обрабатываемых данных.
Но почему такие задержки не видны на локальном хостинге? На локальном хостинге нет передачи данных по сети, поэтому даже неоптимизированные запросы и выборка больших объемов данных может сильно не влиять на скорость открытия страниц сайта. Чего нельзя сказать о сайте, размещенном в сети на рабочем хостинге.
Техническое объяснение – при первом запросе или при некотором ожидании между запросами (например, 20 секунд) происходит пересоздание процесса, отвечающего за работу с базой данных – старый процесс уничтожается и сбрасывается кеш. Если же делать запросы с меньшим интервалом – процесс не успевает уничтожиться и возвращает данные более быстро, так как он уже создан и имеет все или часть кешированных данных, которые нужно отдать.
Как устранить задержки при первом открытии сайта, описанные выше? Необходимо произвести оптимизацию кода, отвечающего за запросы к базе данных. Например, установить ограничения на количество выбираемых строк из нее на каждом запросе. Поиск медленных запросов делается просто – например, в коде можно устанавливать в определенных местах вставки временного кода для записи скорости и таким образом искать медленный участок кода. Когда он найден – выполнить оптимизацию, а если бесполезно – тогда можно прибегнуть к использованию кеша. Создать свою систему кеширования на сайте довольно просто, но это не входит в тему данной статьи.
Последние статьи
- 03.04.24ИТ / Уроки PHP Уроки простыми словами. Урок 3. Все операторы PHP с примерами, с выводом работы кода на экран.
- 02.04.24ИТ / Уроки PHP Уроки простыми словами. Урок 2. Типы данных в PHP с примерами.
- 02.04.24ИТ / Уроки PHP Уроки простыми словами. Урок 1. Коротко о языке веб-программирования PHP. Основы синтаксиса.
- 09.11.23ИТ / Базы данных Ошибки при переходе с MySQL 5.6 на 5.7 и как их исправить - импорт дампа БД завершился ошибкой или не работает INSERT. Отключение строгого режима STRICT_TRANS_TABLES или использование IGNORE
- 08.07.22ИТ / Разное Конвертация офисных файлов DOC, DOCX, DOCM, RTF в форматы DOCX, DOCM, DOC, RTF, PDF, HTML, XML, TXT без потерь и изменения разметки