Навигация

Активные участники:

Поиск:

 

Создать или найти статью:

 

Просмотр Как отключить лишние запросы и оптимизировать ExpressionEngine


Уменьшаем количество MySQL запросов

- Не используйте сессии в настройках безопасности. Кукисов (cookie) должно быть достаточно практически для 99% пользователей (пока вас не взломают).
- Выключите обработку форм в защищеном режиме (настройки безопасности).
- Выключите отслеживание реферов. Счетчик от li.ru вполне заменяет данную функцию. Так-же не забудьте вообще выключить модуль реферов.
- Включите кеширование SQL запросов (настройки базы данных).
- Включите кеширование запросов веблога (не путаем с общим системным кешированием).
- Включите кеширование страниц и темплейтов. Время кеширование подбирается индивидуально. Разделяйте статичные и динамичные элементы. Время кеширование статичных элементов (стили, куски кода без php кода и прочее) соответственно больше чем у динамичных элементов. Так-же не забываем, что если сайт обновляется довольно часто (несколько раз в день), то даже динамичные элементы можно кешировать с большим интервалом. Просто не забудьте включить опцию очистки кеша при публикации новой записи.
- Старайтесь как можно меньше использовать так называемые embedded (включаемые) темплейты. Если у вас статичный контент, то используйте глобальные переменные (global variables), нежели новому шаблону статичного типа (type: static).
- Старайтесь создавать как можно меньше обращений к базе данных. Не устанавливайте лишних плагинов и модулей. Каждое кастомное решение старайтесь делать встроенными возможностями системы, даже если это будет несколько сложнее. Модуль SQL Query позволяет в разы сократить затраты на разработку и увеличить гибкость системы в целом.
- Отключите все неиспользуемые вами функции (капча, словари, фильтр плохих слов). Это существенно сократит нагрузку на базу данных.
- Отключите сбор статистики. Для этого вам нужно открыть файл core/core.system.php и закомментировать $STAT->update_stats();
- После установки ExpressionEngine переконвертируйте ваши таблицы в InnoDB. Багов мною не обнаружено. Данный метод хранения существенно ускорит работу проекта при больших нагрузках.

Настройка сервера

В данном случае как владелец выделенного сервера я буду говорить о вещах, которые доступны каждому владельцу root сервера. Многие из этих вещей так-же применимы к shared хостингу.

- Используйте альтернативные веб сервера, такие как: LiteSpeed, nginx, lighthttpd. Тем самым вы существенно ускорите работу проекта и снизите нагрузу на железо.
- Установите php кешер. Мой фаворит - xCache. На мой взгляд лучший бесплатный продукт в данном сегменте.
- Установите memcache. Систему кеширования на уровне сервера. Это существенно сократит нагрузку на сервере и увеличит скорость работы веб-приложений. Особенно в тех случаях, когда скрипт может напрямую с ним работать (например vBulletin и EngineG2)
- Используйте InnoDB тип хранения в вашей MySQL базе. По тестам, данный метод практически по всем параметрам быстрее чем MyISAM.
- Грамотно настройте php.ini и my.cnf. Подстраивайте конфиги под ваш сервер. В случае добросовестной настройки, вы можете в разы получить прирост производительности и уменьшить нагрузку на сервер.
- Используйте альтернативные решения. Не стоит гнатся за массами. Если апач стоит на 40-50% серверов - это не значит, что он лучший.




Источники:
http://expressionengine.com/wiki/Reduce_Queries/

http://www.nulled.ws/showthread.php?t=26432, автор [/root]

Раздел:Советы

Категории: