/ / Оптимизация сайта на DataLife Engine
август 31 2006

Оптимизация сайта на DataLife Engine

Добрый день дорогие друзья,

в этой статье я хочу рассказать вам немного о структуре скрипта, и как можно оптимизировать его работу, если у вас посещаемый сайт и вы хотите немного снизить нагрузку. Хочу сразу сказать вам что скрипт по умолчанию имеет оптимизированную структуру, поэтому если ваш сайт имеет менее 5 000 уникальных посетителей в месяц, то вам даже нет смысла задумаватся о его оптимизации. Данная статья предназначена для тех у кого посещаемость превышает данное число посетителей, и кто не желает переходить на более дорогой тарифный план у своего хостера.

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

Первое что нужно сделать это включить кеширование сайта. Убедитесь при этом что папка /engine/cache/ доступна для записи. При включении кеширования, вы терятете часть динамики сайта, например счетчик просмотров новостей, будет считаться, но изменятся на странице будет только после обновления кеша. Кеш создается для каждой группы посетителей отдельно обновляется только при обновлении информации в базе данных (например добавление новости или комментария, а также выставления рейтинга статьи). Кеш не имеет срока давности и будет показываться до тех пор, пока не изменится база данных. При включении кеширования, будут кешироваться новости первых четырех страниц на главной и любого раздела, календарь, архив, топ новостей.

Помните: что если вы разрешаете группе пользователей редактировать только собственные новости, то сайт новости для данной группы не кешируются и берутся всегда из базы данных.

Поддержка регистрации на сайте: При отключении данной возможности вы отключаете не только возможность регистрации новых пользователей на сайте, но и отключаете возможность авторизации уже существующих пользователей, для вашего сайта все посетители становятся гостями и механизмы авторизации просто не подключаются. Тем самым вы экономите 1 запрос к базе данных, а также на поддержке кеша для других групп пользователей.

Голосования на сайте: Несмотря на то что в админпанели написано, что при отключении этого блока вы экономите до 3 запросов, то смею вас заверить что в последних версиях скрипта, опрос имеет серьезную оптимизацию, и не создает вообще запросов к базе данных, все имеющиеся опросы сайта кеширутся во время первого старта сайта и кеш не сбрасывается пока не будут внесены изменения в сам опрос, поэтому отключение этого блока не даст вам прироста в производительности. Так что можете смело пользоватся этой возможностью.

Вывод самых рейтинговых статей на сайте: При отключении данного блока вы сможете сэкономить один запрос к базе данных, но имейте ввиду что этот блок кешируется и поэтому данный блок не всегда обращается к базе данных, поэтому много от его отключения вы не выиграете, но тем не менее.

Счетчик просмотров новостей: Отключение данной возможности серьезный шаг на пути оптимизации нагрузки. Связано это с тем что функция обновления UPDATE базы данных, достаточно медленная функция, и во время обновления таблица новостей в базе данных будет заблокирована для чтения, пока не выполнится обновление. И все запросы к базе данных будут стоять в очереди на выполнение. Поэтому если у вас большая база данных с новостями, то мы настоятельно рекомендуем подумать, а нужен ли вам этот счетчик, и что он вам дает.

Календарь: Опять таки кешируется и но позволяет снизить один запрос, и то иногда.

Вывод архивов: Запрос при большом количестве новостей может быть тяжелом, но он кешируется, поэтому нагрузка снизится но ненамного.

Шаблоны: Вы можете использовать на сайте сколько угодно шаблонов, и это не будет создавать нагрузки на сайт, но имейте ввиду, что если вы используете для разных категорий, разные шаблоны то при просмотре полной новости, будет добавлен запрос к базе данных, для получения общего шаблона сайта, именно той категории в которой находится новость.

Рейтинг статей: Если вам не интересны голосования для вашей новости, то не только удалите этот тег из шаблона, но и отключайте данную возможность при добавлении новости, тем самым вы снизите нагрузку на один запрос при просмотре полной новости.

Прикрепление файлов к новости: Если вы загружаете файлы для скачивания (не картинки) то имейте ввиду что будет добавлен один запрос на страницу, на которой показывается ссылка на файл, это необходимо для получения информации о файле, его размере и т.д. Но имейте ввиду что количество ссылок не имеет значения, один файл вы прикрепили или десять, на нагрузку это не влияет, также и не влияет на нагрузку и тот факт если добавите ссылку при просмотре кратких новостей, на все показываемые новости на странице будет всего один запрос. Также имейте ввиду что сама процедура скачивания тоже требует серверных ресурсов, т.к. будет подключение к базе данных, и обновление счетчика, если это не нужно, то можно отключить в админпанели.

Включение GZip сжатия: При включении данной опции, существенно сокращается траффик вашего сайта, и ваших посетителей и ускоряется загрузка страниц, но создается дополнительная нагрузка на центральный процессор. Что вам лучше решать вам.

Незабывайте периодически проводит оптимизацию базы данных в админпанели, эта функция не для красоты сделана, после оптимизации, будут перестроены ваши ключи, а также пересчитаны поля разной длины. Тем самым вы ускорите работу базы данных и уменьшите ее размер.

Ну и самое главное это минимальное использование сторонних модулей, как правило они плохо оптимизированы, поэтому проконсультируйтесь у автора модуля, насколько требователен он к ресурсам.

Ну вот вроде бы и все.

Надеюсь статья принесла вам пользу, удачной вам оптимизации.

Комментарии

C-WEST

C-WEST

31 августа 2006 01:33 Клиенты
0
celsoft, большое спасибо за информацию!
Akela

Akela

31 августа 2006 07:30 Клиенты
0
celsoft, спасибо за полезную информацию.
По ходу есть вопрос - а нельзя ли счетчик просмотра новостей как-то оптимизировать ? Т.е. отказаться от UPDATE ?
Ксандер

Ксандер

31 августа 2006 09:42 Клиенты
0
celsoft, большое спасибо, можно сказать спас от лишних затарат)))
celsoft

celsoft

31 августа 2006 10:49 Администраторы
0
Цитата: Akela
По ходу есть вопрос - а нельзя ли счетчик просмотра новостей как-то оптимизировать ? Т.е. отказаться от UPDATE ?

других операторов для обновления нет, иногда люди решают проблему другим способом, выносят счетчик в отдельную таблицу и периодически, например раз в час, проводят синхронизацию таблиц.
Akela

Akela

31 августа 2006 12:15 Клиенты
1
Цитата: celsoft
иногда люди решают проблему другим способом, выносят счетчик в отдельную таблицу и периодически, например раз в час, проводят синхронизацию таблиц.

Я это как раз и имел в виду.
Просто вроде бы счетчик вещь полезная, а с другой стороны - не так критично, что написано к примеру 355 просмотров, а на самом деле 379.
.pr

.pr

1 сентября 2006 06:27 Гости
0
Спасибо
SqR

SqR

1 сентября 2006 08:23 Клиенты
0
Плюс шаблоны нада делать путевые... а не куча html кода на 100 кило.. и еще картинок на 500...
SNOOPY

SNOOPY

1 сентября 2006 13:44 Посетители
0
А ещё не описали - сжатие: траффик уменьшится и время передачи данных от сервака юзеру.
eXz-MaN

eXz-MaN

23 сентября 2006 23:50 Гости
0
да блин куда уже дальше оптимизировать? =)))
yog

yog

25 декабря 2006 10:06 Гости
0
нормальные советы! wink
freeprogs.kiev.ua

freeprogs.kiev.ua

8 мая 2007 16:31 Клиенты
0
советы хорошие, но я эти меры принял уже давно, так как посещаемость 5000 чел в сутки а не в месяц winked
Mr 13

Mr 13

30 мая 2007 13:45 Посетители
0
Советы конечно полезные, но если заходит на сайт робот гугла - это просто ад wink

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Календарь
«    Июнь 2017    »
ПнВтСрЧтПтСбВс
 1234
567891011
12131415161718
19202122232425
2627282930 
Опрос на сайте
Совершаете ли вы покупки в интернет?

Популярные новости
Архив новостей
Июнь 2017 (1)
Апрель 2017 (3)
Март 2017 (2)
Февраль 2017 (1)
Январь 2017 (1)
Декабрь 2016 (3)