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

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

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

Отже приготуйтеся до того, що за все потрібно платити, і якщо ви хочете зменшити навантаження то вам буде необхідно пожертвувати частиною можливостей скрипта. І в цій статті я хочу розповісти вам, що ви втрачаєте відключаючи або іншу можливість, тим самим виставити пріоритети в оптимізації скрипта.

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

Пам’ятайте, що якщо ви дозволяєте групі користувачів редагувати лише власні новини, то сайт новини для даної групи не кешируются і завжди беруться з бази даних.

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

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

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

Лічильник переглядів новин: Відключення даної можливості серйозний крок на шляху оптимізації навантаження. Пов’язано це з тим, що функція оновлення ОНОВЛЕННЯ бази даних, досить повільна функція, і під час оновлення таблиця новин в базі даних буде заблокована для читання, поки не виконається оновлення. І всі запити до бази даних будуть стояти в черзі на виконання. Тому якщо у вас велика база даних з новинами, то ми настійно рекомендуємо подумати, а чи потрібен вам цей лічильник, і що він вам дає.

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

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

Шаблони: Ви можете використовувати на сайті скільки завгодно шаблонів, і це не буде створювати навантаження на сайт, але майте на увазі, що якщо ви використовуєте для різних категорій, різні шаблони то при перегляді повної новини, буде доданий запит до бази даних, для отримання загального шаблону сайту, саме тій категорії, в якій знаходиться новину.

Рейтинг статей: Якщо вам не цікаві голосування для вашої новини, то не тільки видаліть цей тег з шаблону, але вимкнути цю можливість при додаванні новини, тим самим ви зменшите навантаження на один запит при перегляді повної новини.

Прикріплення файлів до новини: Якщо ви завантажуєте файли для скачування (не картинки, то майте на увазі що буде доданий один запит на сторінку, на якій показується посилання на файл, це необхідно для отримання інформації про файл, його розмір і т. д. Але майте на увазі що кількість посилань не має значення, один файл ви прикріпили або десять, на навантаження це не впливає, також і не впливає на навантаження і той факт якщо додасте посилання при перегляді коротких новин, на всі показуються новини на сторінці буде всього один запит. Також майте на увазі, що сама процедура скачування теж вимагає серверних ресурсів, т. к. підключення до бази даних, і оновлення лічильника, якщо це не потрібно, то можна відключити в адмінпанелі.

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

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

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

Ну ось начебто і все.

Сподіваюся стаття принесла вам користь, вдалої вам оптимізації.
148