- 1. Робимо резервну копію бази даних
- 2. Відключаємо ревізії постів і встановлюємо мінімальний термін зберігання вилучених файлів в кошику
- 3. Видаляємо ревізії постів
- 4. Оптимізуємо записи в wp-post
- 5. Чистимо wp-postmeta
- 6. Видаляємо спам-коментарі
- 7. Видаляємо пінгбекі
- 8. Відключаємо пінгбекі
- 9. Встановлюємо плагін Optimize DB
Привіт всім!
Сьогодні ми з вами розглянемо таке поняття, як оптимізація бази даних mysql! Про це я сам дізнався зовсім недавно і поспішаю поділитися з вами, тому що інформація, яку я вам зараз розповім дуже цінна!
Для чого все це потрібно? На що впливає? Як втілити в реальність? На всі ці питання я постараюся дати чітку відповідь в цьому пості!
А тепер невелика передісторія. Загалом, недавно отримав лист на свій e-mail адресу, наступного змісту:
Протягом останніх 3 днів середній рівень навантаження, що створюється Вашим акаунтом *******, склав 119% від допустимого рівня Вашого тарифного плану. Ми рекомендуємо Вам перейти на тарифи VPS. Звертаємо Вашу увагу, що в разі регулярного перевищення лімітів, ми залишаємо за собою право заблокувати Ваш аккаунт згідно з пунктом Договору ...
Обидва на, припливли - подумав я в той момент! Погодьтеся, не дуже приємно отримувати такі листи. А так як з подібного роду проблемою я зіткнувся вперше, уявляєте, в якому я був здивований? Моєму обуренню не було меж! Який нафіг VPS? Я можна сказати тільки обжився на одному тарифі, а мені тут пропонують перейти на віртуальний хостинг, який в три рази дорожче. Ну немає вже хлопці, - думаю я, - ще зарано.
Пишу в обратку лист моєму хостера, з проханням пояснити мені, з якого це переляку у мене зашкалює навантаження? Адже мого блогу всього-то два з невеликим місяці від народження. Та й відвідуваність не велика. Загалом, пишу, що категорично проти переходити на VPS, вважаю, що це не доцільно на такому ранньому етапі розвитку ресурсу і прошу вказати мені на мої помилки, що з ними робити і як надалі їх контролювати!
У відповідь отримую наступне:
Шановний абонент, ми вас не збираємося відключати саме зараз, це банальне попередження, але мовляв треба з цим, щось робити. Проблема перевищення навантаження не залежить безпосередньо від відвідуваності, а в більшій мірі залежить від неправильної оптимізації вашого ресурсу. Для відстеження навантаження ми вам вивели в панелі управління лічильник, який оновлюється кожні 10 хвилин:
Ну спасибі за роз'яснення, - думаю про себе. Піду вивчати проблему. Набравши в інтернеті запит «як знизити навантаження на хостинг» зрозумів, що я не один такий, а насправді проблема досить актуальна. І рано чи пізно торкнеться багатьох. Ознайомившись більш детально з проблемою, зрозумів, що у мене є два виходи з даної ситуації:
- Звернутися за допомогою до професіоналів (фрілансерам), заплативши їм певну суму грошей, що завжди встигну.
- Постаратися усунути проблему самому.
Так ось, я вибрав другий варіант і скажу вам чесно, поки що ні на грам не пошкодував. Мені вдалося знизити навантаження на хостинг в два-три рази. Ось подивіться самі:
Різниця, на обличчя! Зараз я вам покажу і розкажу, що я для цього зробив:
- оптимізував базу даних mysql, що істотно відбилося на зниженні навантаження на хостинг і прискоренні wordpress;
- позбувся близько 8 непотрібних плагінів.
- прискорив wordpress, відредагувавши кілька файлів теми свого блогу.
Так як матеріал досить таки об'ємний, я вирішив розбити його на три частини. З цієї статті ви дізнаєтеся, як знизити навантаження на хостинг за рахунок оптимізації бази даних. У наступній статті я вам розповім, як замінити частину плагінів кодами . І остання стаття буде на тему прискорення блогу . Коли я все це зробив зі своїм ресурсом, я був в шоці над тим, як мій блог став завантажуватися! У порівнянні з тим, що було - він став літати.
Загалом, матеріал, який ви знайдете у цих трьох постів, буде ну просто обладнаний. НЕ пропустіть, !
Перш ніж ви почнете робити різні дії з базою даних, обов'язково робіть резервну копію. Щоб у разі виникнення проблем можна було все швиденько відновити. База даних містить всю історію вашого ресурсу, в ній зберігаються всі записи, присутні на вашому блозі! А взагалі, раджу вам взяти за правило зберігати базу даних кожен день! Це у вас займе буквально 1 хвилину, але зате ви будете завжди спати спокійно. Самі розумієте може трапиться всяке.
1. Робимо резервну копію бази даних
Для зручності з'єднання з сервером і обробки даних я користуюся FTP - клієнтом FileZilla . Дуже класна штука, як-небудь напишу про це клієнта окремий пост,. Загалом, вам потрібно перейти на свій сервер і знайти в ньому вкладку «Бази даних» або «Бази даних MySQL», щось в цьому роді. На кожному сервері база даних є, при переході сервер може запросити пароль. Він у вас повинен бути. При покупці хостингу пароль надається.
У підсумку ви повинні опинитися ось на такій сторінці, phpMyAdmin:
Заходьте в базу даних, клікнувши по її назві. Перед вами відкриється таблиця бази даних (клікніть для збільшення):
Натискаєте «Експорт» і «ОК». Зберігаєте на своєму ПК. Все, база даних збережена, тепер можемо приступати до її оптимізації. Зверніть увагу, якщо на вашому хостингу присутній поле «Зберегти як файл» не забудьте навпроти нього поставити галочку! А також запам'ятайте, скільки важить в даний момент ваша база даних, а потім подивіться скільки вона буде важити після оптимізації.
У мене вона важила до оптимізації 26 Mb - це ЖАХ, а що зараз? А зараз вона важить всього 2 Mb! Уявляєте, скільки всякого непотрібного мотлоху вона містила в собі? Уявляєте, яке навантаження вона створювала на сервері? Після оптимізації бази даних, мій блог став літати, як реактивний літак! Загалом, після того як ви зробите все нижче описані дії, ви відчуєте істотну різницю!
2. Відключаємо ревізії постів і встановлюємо мінімальний термін зберігання вилучених файлів в кошику
Що таке ревізія посад? Коли ви пишете пост в блог, wordpress автоматично, через певний проміжок часу, зберігає резервну копію кожного поста в базі даних, в загальному, робить авто збереження. А тепер уявіть коли ви напишіть 50 постів на блозі? Скільки копій постів у вас буде збережено? Це жесть! Поки ви пишете пост, у вас вже як мінімум проходить 10 авто збережень!
Плюс до всього цього, якщо ви видаляєте файли, вони у вас накопичуються в кошику, що також навантажує базу даних. Звичайно, добре якщо ви відразу видаліть файл і з кошика, але частенько трапляється, що багато про це забуваю, а деякі просто забивають! А це ой як не добре ... База все зростає, навантаження на сервер все більше і більше, блог вантажиться все повільніше і повільніше ... Ви замислювалися, до яких наслідків це може призвести?
Ось основна частина наслідків, але далеко не всіх: зниження індексації , Часті відмови, погіршення поведінкових факторів , Зниження позицій у видачі пошукових систем ... А далі, автор в подає у відчай від не виправдали очікувань. Бажання вести блог з часом пропадає і все! КРАХ!
Все це я до чого говорю? За базою даних постійно потрібно стежити і утримувати її в належному стані. Зрозумійте, база даних - це як серце блогу. При постійному навантаженні на серце не потрібним мотлохом, з часом воно не витримає і зупинити! Я думаю, ви мене зрозуміли? Тому вистачить жахів і переходимо до оптимізації бази даних.
Отже, відкриваємо файл wp-config.php, він знаходиться в корені вашого блогу, тобто ваш хостинг / httpdocs або public_html (в залежності від хостингу) /wp-config.php. І вставляємо в нього два рядки:
1 2 define ( 'WP_POST_REVISIONS', false); define ( 'EMPTY_TRASH_DAYS', 1);
Рядок №1 відключає ревізію посад, рядок №2 означає, скільки днів будуть зберігатися видалені файли в корзині. Як бачите, я поставив «1», можна звичайно поставити і «0», але якщо раптом по необережності у вас здригнеться рука і ви натиснете на посилання «видалити», все - КАПЕЦ!
А після просиджування за комп'ютером 5-8 годин, повірте мені, це можливо! Так що я вважаю за краще залишити циферку «1». Звичайно, після видалення файлу краще відразу ж почистити кошик вручну, але якщо навіть ви забудете це зробити, через добу файл з кошика автоматично віддалиться! Ось як це виглядає у мене:
З цим розібралися, йдемо далі.
3. Видаляємо ревізії постів
Якщо в попередньому пункті ми відключили ревізію посад, то в цьому пункті нам потрібно видалити всі ревізії постів, які накопичилися за весь час ведення блогу. Якщо ви цього не разу не робили, то у вас збереглося їх неймовірно велика кількість! Давайте це зробимо. Копіюємо ось цей рядок:
DELETE FROM wp_posts WHERE post_type = "revision"
Переходимо знову в базу даних MySQL, як описано в першому пункті. Заходимо у вкладку SQL, вставляємо в поле скопійоване рядок і натискаємо «ОК»:
База даних запитає:
Відповідаємо «ОК» і дивимося, скільки не потрібних ревізій постів містила в собі ваша база даних, і скільки часу йшло на те, щоб запит обробити. А кожна частинка часу дає свою навантаження:
Я робив чистку 3 дні тому, тому у мене вона ще не обросла ревізіями. Коли я перший раз почистив базу, у мене було видалено аж 1800 з чимось рядків! Уявляєте, скільки копій непотрібних постів в ній зберігалося? Йдемо далі.
4. Оптимізуємо записи в wp-post
Папка wp-post містить всі записи блогу. Точно так само як і в попередньому пункті, копіюємо рядок:
і вставляємо в поле SQL запиту. Натискаємо «ОК», дивимося:
Все, запит виконаний!
5. Чистимо wp-postmeta
Що саме будемо чистити? Папка wp-postmeta містить в собі:
- час останнього редагування будь-якого з постів. Значення ніякого не має, а навантаження на сервер, яку ніяку, а дає;
- зміст попереднього ЧПУ (Людини зрозумілого урла). Якщо ви коли-небудь змінювали постійне посилання в будь-якому пості. Те при зміні її, вона не видаляється, а осідає в папці wp-postmeta і навантажує вашу базу.
Робимо все те ж саме, копіюємо ось цей код:
DELETE FROM `wp_postmeta` WHERE` meta_key` IN ( '_edit_lock', '_edit_last', '_wp_old_slug')
Вставляємо його в поле запиту SQL, і тиснемо «ОК». Дивимося на результат:
ЧПУ посилання я не міняв, а ось помилки в постах знаходив і після редагування робив повторне збереження, звідси і 6 рядків.
6. Видаляємо спам-коментарі
Робиться аналогічно, копіюємо код:
DELETE FROM wp_comments WHERE comment_approved = 'spam';
вставляємо в поле SQL запиту, тиснемо «ОК», дивимося результат:
Як ви бачите «0». Після виконання цього запиту, ви забудете про спам коментарі!
7. Видаляємо пінгбекі
Пінгбекі - це повідомлення про те, що на ваш пост або сторінку хтось посилається. Нам це не потрібно, зайве навантаження! Видаляємо!
Копіюємо код:
DELETE FROM wp_comments WHERE comment_type = 'pingback';
Далі, все те ж саме.
8. Відключаємо пінгбекі
З минулого пункту ми з'ясували, що пінгбекі не несуть ніякої користі для нашого ресурсу, а тільки його засмічують. Тому давайте їх і зовсім відключимо. Копіюємо цей код:
UPDATE wp_posts p SET p .ping_status = 'closed'
а далі ви вже знаєте, що робити!
Ну як вам така чистка? Сподобалася? А тепер подивіться, скільки стала важити ваша база даних після її оптимізації? Помітно зменшився розмір? А я вам казав! Подивіться, як став завантажуватися ваш блог! Він повинен літати! Але і це ще не все на сьогодні. Зараз ми розглянемо ще один останній пункт, який також суттєво поліпшить оптимізацію.
9. Встановлюємо плагін Optimize DB
Про це плагін я вже коротко згадував в цьому пості . Ну давайте більш детально розглянемо, як ним користуватися. Даний плагін, як ви вже здогадалися, сприяє оптимізації бази даних! Скачайте архів з плагіном собі на ПК, ось і увімкніть її:
Далі переходимо в панель «Інструменти», вибираємо «Optimize DB» і натискаємо «Optimize Now»
Все, ваша база даних оптимізована додатково за допомогою плагіна:
Після оптимізації деактивуйте плагін, щоб він не ніс додаткового навантаження на ваш ресурс. І взагалі, раджу вам робити все вище описані дії з періодичністю раз на місяць можна навіть частіше. І тоді ваш блог буде завантажуватися блискавично і навантаження на сервер буде мінімальною.
А в наступній частині поста, я вам покажу, як замінити частина не непотрібних плагінів кодами. Обов'язково, щоб нічого не пропустити. Це буде потужний пост, після якого ваш сервер буде легкий як пушинка!
А на цьому я з вами буду прощатися. На сьогодні у мене все, бажаю всім успіхів, і пам'ятайте оптимізація бази даних це колосальне зниження навантаження на ваш ресурс. Всім поки і до швидких зустрічей.
І на останок порція приколів:
Ну як вам стаття? Я впевнений, що ви залишитеся задоволені після її прочитання і виконаних рекомендацій зі своїм ресурсом! Чекаю на ваші коментарі!
З повагою, Микола Коротков
Для чого все це потрібно?На що впливає?
Як втілити в реальність?
А так як з подібного роду проблемою я зіткнувся вперше, уявляєте, в якому я був здивований?
Який нафіг VPS?
Пишу в обратку лист моєму хостера, з проханням пояснити мені, з якого це переляку у мене зашкалює навантаження?
У мене вона важила до оптимізації 26 Mb - це ЖАХ, а що зараз?
Уявляєте, скільки всякого непотрібного мотлоху вона містила в собі?
Уявляєте, яке навантаження вона створювала на сервері?
А тепер уявіть коли ви напишіть 50 постів на блозі?