Несколько лет я проектировал одну ЦМС. Изначально это был просто вывод статей и новостей. Текст содержался в базе данных, в папках хранились файлы.
Прошло время, ЦМС стала модифицироваться. Сначала я сделал регистрацию пользователей, потом прикрутил интернет-магазин, после сервис сообщений, блоги, настройку профилей и много всего другого.
И вот настал момент :), как догадался читатель, пошла огромная нагрузка. Сайт располагался на обычном хостинге и на большие ресурсы чем "чуть-чуть" рассчитывать не приходилось.

Оптимизация длилась почти три месяца, сейчас я расскажу основные методы и аспекты, которые позволили снизить нагрузку почти 15 раз.

1. В запросах SQL ни в коем случае не используйте "*", лучше и правда, как везде пишут перечислять поля.

2. Создайте классы, например для работы с базами данных, кэшированием системы.

3. Занового пересмотрите свои функции, уверен вы найдете там что можно выкинуть или переписать.

4. Разделите свою ЦМС на модули и подгружайте только тот, который нужен.

5. Скорость загрузки напрямую зависит от скорости исполнения скриптов, поэтому делайте как можно меньше обращений к базе и выполнений скриптов. Знаю, что без этого не обойтись. Тем не менее настоятельно рекомендую воспользоваться функцией ob_start, с помощью нее вы сможете кэшировать участки страницы, затем сохранять их в папку, откуда потом будете их считавать. Например, зачем считывать статью из базы каждый раз, если можно просто закэшировать ее в HTML файл и подгружать его потом. Ускоряет процесс почти в 50 раз. Т.е. страница где текст грузится моментально.

6. Используйте gzip сжатие контента, когда отдаете его браузеру. Об этом вы можете прочитать в другой моей статье, там же найдете и исходник.

Вот примерно весь список, благодаря которому я смог ускорить загрузку страниц и работу ЦМС во много раз. Сейчас на этой ЦМС работает лучший блогохостинг :)

Остальные аспекты мы разберем в следующих статьях.

(Visited 56 times, 1 visits today)