Як оптимізувати базу даних mysql в wordpress блозі?
Сьогодні буде дуже цікава і корисна для вас стаття, яка допоможе вам в кілька разів прискорити роботу своїх блогів. Всі ті методи прискорення, які будуть представлені нижче ПРАЦЮЮТЬ і перевірені на мені особисто. Методи ці не тільки прискорюють роботу блогу, але ще і знижують навантаження на ваш сервер, що так само не мало важливо при веденні блогу. Почнемо …
На початку невеликий вступ. Багато хто запитує, – «Чи впливає швидкість завантаження блогу на позиції у видачі?». А ви як думаєте? Звичайно ж впливають. Уявіть собі, людина ввів в гуглі або в Яндексі, наприклад, який-небудь запит, побачив посилання на ваш блог, перейшов по ній, а ваш ресурс вантажиться дуже повільно. Частенько буває на деякі блоги зайдеш і бачиш білу сторінку, яка все вантажиться і вантажиться.
Велика ймовірність того, що людина просто не дочекається завантаження сторінки і просто закриє ваш блог. Це відмова. Чим більше ось таких ось відмов, тим нижче блог у видачі. Гугл так взагалі ніби як знижує у видачі за те, що блог вантажиться повільно.
Та й взагалі кому захочеться читати блог, де сторінки ледве відкриваються згодні? Зараз ми будемо з вами прискорювати блог, так само ви дізнаєтеся про те, як оптимізувати базу даних wordpress через phpmyadmin. Поїхали. Давайте я по пунктах розповім вам, що було мною зроблено для прискорення блогу і зниження навантаження на сервер.
1. Я відключив дуже багато не потрібних плагінів.
Насправді, дуже багато плагінів це жесть. Всі вони створюють навантаження на сервер хоч якийсь би чудовий кеш у вас не стояло. Ось у мене стоїть Maxcache, просто суперський скрипт кешування, але все ж плагіни є плагіни і вони роблять свою справу …
Близько 10 плагінів я просто відключив.
Навіщо? Ну деякі просто не потрібні. Посидів гарненько, подумав і вирішив прибрати їх, а деякі просто замінив кодом. Дуже багато функцій на блозі можна здійснити і без плагінів, про це написано вже не мало статей в інтернеті. Ось вам кілька прикладів плагінів, які можна відключити і замість них використовувати різні коди.
Scroll to Top Button – плагін, який виводить на блозі кнопку прокрутки «наверх». Ви бачите у мене синю кнопку праворуч на сторінці? От раніше я використовував плагін, а тепер зробив це за допомогою простого коду. Про це я писав ось тут до речі – «Як зробити кнопку наверх на блозі».
WordPress Related Posts – плагін, який виводить схожі записи на блозі. Навіщо плагін, якщо можна за допомогою коду все вивести? Про це так само не мало написано в інтернеті.
WP Page Numbers – плагін який виводить посторінкову навігацію в блозі. Так само можна за допомогою коду все зробити.
Disable WordPress Updates – плагін, який відключає автоматичне оновлення движка блогу і плагінів. Аналогічно. Пару рядків у коді прописав і поновлення відключаються. Навантаження на блог знижується дуже потужно до речі.
Qip Smiles – плагін виведення смайлів – так само можна без плагіна зробити смайлики на блозі.
Invisible Captcha – захист коментарів wordpress від спаму. Теж можна підмінити поля в коді і спам не буде вас турбувати і плагін не потрібен.
Anti-XSS attack – відключив. Взагалі вже не потрібен, так як працює для WP 2.5
Audio player – відключив, так як дуже жорстко створює навантаження на сервер.
Login LockDown – відключив. Навіщо він потрібен. Зробив пароль з 50 символів і спи спокійно.
Optimize DB – відключив. Включаю зрідка. Оптимізував базу даних і знову відключив.
Ну і інші плагіни дрібні відключив … Дивіться, більше 10 плагінів відключені. В результаті блог почав працювати на багато швидше і навантаження на сервер знизилася дуже потужно. До речі це ще не все, що можна відключити. У мене в планах відключити її близько 6 плагінів за рахунок використання коду.
=) Все зелененькі! Гуд! Питання, – «Як використовувати код і не застосовувати плагіни?». Ну, повторюся, вже про це написано чимало статей. Почитайте про це в інтернеті, я вже докладно писати не буду. Просто йдете в гугл або яндекс і набираєте запит – приклад: «Посторінкова навігація wordpress без плагінів», «Захист від спаму в коментарях без плагінів» і т.д. Знайдете не один п’ят статей … Удачі …
2. Прибрав всі відеоролики і аудіо з блогу, які з нього вантажилися.
Ось приклад. Зробив три навчальних видеоурока в Camtasia Studio для того, щоб пояснити покупцям реклами на блозі, як це правильно робити. Відеоролики ось тут. Відео таким чином вантажилось з сервера. Коли його почали дивитися відразу близько 100 чоловік мій сервер закричав, – «Ти що Саня, я зараз вибухну !!!».
Після цього я завантажив все відео на Ютуб і вивів його на блозі через код. Ну думаю як це робиться ви все знаєте. Так само прибрав все аудіоролики. Загалом я зробив так щоб вихідного трафіку з блогу було якомога менше.
3. Відключив все ревізії постів + кошик на блозі.
Дивіться така справа. Сіли ви писати пост в блог. Пишіть і пишіть … Написали і зберегли … Добре! Далі раптом вам закортіло щось поміняти в пості, ви його значить міняєте і знову зберігаєте. Що відбувається з першим варіантом поста? Створюється його ревізія (збережена копія). Ось за рік на блозі таких копій (ревізій) може зберегтися вимірювання кількість. Ваше завдання все ці ревізії видалити і взагалі відключити їх створення.
Про видалення ми поговоримо нижче, зараз давайте їх відключимо, а так само відключимо кошик в блозі. В кошику зазвичай зберігаються вилучені вами пости і сторінки.
Відкриваєте файл wp-config.php (лежить він в корені вашого блог, це папка або httpdocs або publik_html) за допомогою текстового редактора. Я відкриваю за допомогою notapad ++. І там вставляєте 2 рядки:
define ( ‘WP_POST_REVISIONS’, false);
define ( ‘EMPTY_TRASH_DAYS’, 0);
Я вставив ці рядки ось тут:
Перший рядок відключає ревізії постів, друга відключає кошик. «0» – час (днів) зберігання постів або сторінок в кошику. Нуль означає ні скільки. Можете поставити 1 або 2. Майте на увазі, що якщо у вас стоїть нуль, то по обережніше редагуйте сторінки і матеріали блогу. Може натиснути ненавмисно «видалити сторінку назавжди» і пипец буде. )
3. Я оптимізував (почистив) базу даних блогу, видаливши з неї багато сміття.
Це просто жах! Моя база даних важила аж понад 25 МБ! Капец! А знаєте все чому? Тому що її господар охрінів, вибачте на слові. Взагалі розслабився і не приділяв уваги такий ВАЖЛИВОЮ речі в блоговеденія, як оптимізація та чистка бази даних блогу.
Зараз після всіх не складних махінацій, база вести всього близько 15 МБ, практично в 2 рази зменшив її. Що я зробив? Ну зробив я дуже багато всього, зараз буду перераховувати, а ви одночасно повторюйте. Вам раджу зараз зайти в phpmyadmin на сервері і вибрати базу даних вашого блогу в боковій колонці. Напевно всі знають як це робиться.
Якщо не знаєте, то знайдіть де-небудь у себе в панелі управління хостингом кнопку «PhpMyadmin» і тисніть на неї. Там вам запропонують ввести логін і пароль для входу (ви їх повинні знати)!
На зображенні зверху в стовпчику всі бази даних, вам потрібно натиснути один раз на вашу базу (я свою приховав від хакерів, вона зацвірінькали) =)
Тепер для початку давайте зробимо резервну копію бази даних про всяк випадок. Тиснете кнопку «Експорт»
Тиснемо «Виділити все» – і внизу натискаємо «ОК». Можете запакувати в архів базу якщо вам потрібно. Після натискання на «Ок» база викачуватиметься на комп’ютер. Збережіть її в надійному місці. Мало вона вам знадобиться якщо накосячите.
Усе! Ми захищені, тепер можна починати чистити і оптимізувати базу. Переходимо на вкладку “Структура».
Насамперед вам потрібно видалити всі зайві таблиці з бази які лежать мертвим вантажем. Коли тільки ви встановили голий движок wordpress, то в базі даних створюються такі основні таблиці:
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users
Їх видаляти не в якому разі не потрібно! Як тільки ви починаєте встановлювати якісь плагіни, то в базі створюються додаткові таблиці. Ось приклад я встановив плагін тестування wp-testme і у мене відразу ж створилися в базі наступні таблиці:
wp_testme_answers
wp_testme_questions
wp_testme_results
wp_testme_stats
wp_testme_tests
СТОП, СТОП !!! Їх видаляти не потрібно. Це просто приклад. Я використовую цей плагін на блозі, тому видаляти ці таблиці не можна ні в якому разі. Але ось буває так, що ми часом встановимо який-небудь плагін, попользуемся їм, а потім відключимо і видалимо. Все він нам не потрібен, він не працює, а ось таблиці від нього залишилися в базі. Всі ці таблиці потрібно видалити так як вони зайві і уповільнюють роботу блогу.
Ось наприклад я видалив близько 10 старих таблиць в базі. Пам’ятаю користувався плагіном WP-ContactForm, який створює на блозі форму зворотного зв’язку, видалив плагін, а таблиця залишилася. Таблицю видалив. Видалив таблиці плагінів akismet, comment-rating, hyper cahce, яким давно не користуюся і т.д … Загалом очистив базу як слід від непотрібних таблиць, залишив тільки ті, які потрібні.
Видаляються таблиці наступним чином. Відзначаєте галочкою потрібну вам таблицю і навпроти неї тиснете – на значок «хрестик».
Далі. Видалити таблиці це ще пів справи. Пам’ятайте ми з вами відключили ревізії, тепер потрібно видалити ті, які все ж залишилися в базі даних. Перед видаленням запам’ятайте циферку (розмір) навпроти таблиці wp-post. Після видалення подивіться на скільки вона зменшилася. У мене в 2 рази. =)
Заходимо на вкладку «SQL» і вводимо туди наступний запит:
DELETE FROM wp_posts WHERE post_type = “revision”
Виглядати це буде так:
Натискаємо «ОК». Далі ви повинні побачити приблизно ось це:
У мене видалено 7 рядків з урахуванням того, що 2 дні тому я вже видаляв ревізії. У вас буде більше. Далі йдемо. wp-post ми почистили, тепер в ньому все тільки найнеобхідніше залишилося. Далі вам потрібно таблицю wp-post оптимізувати наступним запитом:
OPTIMIZE TABLE wp_posts;
Робиться аналогічно через вкладку SQL. Готово? Тепер видаляємо все спам коментарі на блозі:
DELETE FROM wp_comments WHERE comment_approved = ‘spam’;
Тепер видаляємо все пінкбекі:
DELETE FROM wp_comments WHERE comment_type = ‘pingback’;
Знаєте так? Буває хтось поставить на вас посилання з іншого ресурсу і до вас пінгбек приходить, він ще іноді в коментарі відображається. Так ось їх потрібно видаляти. Вони тільки зайве місце займають. Після того як ви їх видалили, можна взагалі відключити запис пінгбеков в базу. Ось запит:
UPDATE wp_posts p SET p.ping_status = ‘closed’
От і все! Ми потужний оптимізували нашу базу.
Далі. Якщо у вас не встановлений плагін optimize DB, то встановіть його, активуйте, зайдіть в адмінці в розділ – Інструменти – optimize DB і там натисніть один раз на кнопку – «Optimize NOW». Оптимізували базу – ОК. Вимикайте плагін.
Так. Тепер давайте розглянемо процес завантаження нашої збереженої на комп’ютері бази даних на сервер якщо МАЛО ЛИ ЩО ви накосячілі і у вас перестав працювати блог. Звичайно ж якщо ви ні чого зайвого не зробите, крім того, що тут описано, то у вас все буде нормально.
Робиться все просто. Видаляємо абсолютно всі таблиці в тій базі даних, які вже є на сервері і після цього завантажуємо нову базу даних (збережену) через вкладку «Імпорт».
Натискаєте «Вибрати файл» і вибираєте свою базу даних. Тиснете «Ок». Майте на увазі, що базу завантажувати потрібно в форматі sql, тобто вона не повинна бути запакована в архів. Після того як імпорт буде зроблений, у вас все стане на свої місця і все буде добре як раніше.
Такий момент! По початку php дозволяє завантажувати базу даних не більше 2-х MB. Якщо ваша база даних більше, то у вас вилізе помилка «Перевищено максимальних розмір файлів. Прочитайте документацію »Щось на зразок цього.
Значить вам потрібно поставити в настройках php розмір файлу більше ніж 2 мегабайта. Я поставив 25, щоб напевно. Робиться це просто. Відкриваєте файл php.ini на вашому сервері за допомогою notepad ++. Він зазвичай лежить в папці cgi-bin і знаходите в ньому 2 рядки:
upload_max_filesize
post_max_size
Навпаки них ставимо потрібний розмір в MB.
Ну це вам так на всякий випадок, хіба мало що. Я якось помилково свою базу даних видалив і пипец. Став завантажувати, а вона не завантажується. тепер ви будете знати що й до чого.
Ну і на завершення я хотів би дати вам кілька слушних порад які допоможуть вам знизити навантаження на ваш сервер і прискорити роботу блогу ще більше.
а) завантажуйте в пости картинки не великих розмірів. Великі картинки довго вантажаться.
б) Не вставляйте в блог аудіо та відео, яке безпосередньо вантажиться з вашого сервера. Використовуйте різні сервіси для цього. Ютуб наприклад.
в) Всі коди скриптів по можливості пишіть в підвал блогу (файл footer.php). Нехай при загружке сторінки спочатку завантажиться все основний вміст блогу (текст, картинки і все інше), а потім вже всякі примочки.
На цьому у мене все!