sitemap archive

WordPress : проста і ефективна оптимізація бази данних

в категорії wordpress фішки

теґи :

Ви здивуєтесь коли я вам скажу, що в базі даних вордпресу знаходиться 80% зайвої, нікому не потрібної інфи. А так і є.
Оптимизация движка вордпресса и работа с базами данніх by Lilumi

В моєму випадку з бази я викинув 67% сміття, у вас я думаю показники будуть більші. Отож по порядку:

  1. Clean Options - чистим опції
  2. Знищуємо таблиці від непотрібних плагінів
  3. Міняємо кодування бази даних Вордпресу
  4. Вилучаємо ревізії постів
  5. Викидаєм зайве з Dashboard

А почалося все з цього:

wordpress optimization
Зверніть увагу на таблицю wp_options - 1.3Mb - це ж нечуванно!

Clean Options - чистим опції
Саме прикріше те, що "сміттєва" інформація знаходиться в таблиці wp_options (мабудь розраховували на те, що звичайний юзер побоїться в неї залізти). Отож скачуємо плагін Clean Options і запускаємо його кнопкою Find Orphaned Options. Ви побачите довжелезний список опцій що були добавленні плагінами, що стоять у вас, або колись стояли. От видалити ті опції плагінів що уже не стоять задача нелегка, адже там явно не вказано від якого плагіну той чи інший запис, тому прийдеться діяти наосліп озброївшись пошуком по гуглю. (можливо все таки варто зробити бекап бази перед цими діями, я відповідальності за ваші дії не несу). А нижче ви побачите список новин з rss-каналів що появляються в Панелі керування.

Ну признайтесь, хтось з вас їх читав? Я ні, а саме ці новини і займають по пару мегабайт в ваших базах даних вордпресу. От від них ми і безболісно позбавимось. Виділяєте їх і тиснете на "View Selected Options Information" де ви побачите зміст цих полів. Перед вами простягнеться довжелезне простирадло з довжелезним скроллом зі змістом того "сміття". Одразу ж після завершення завантаження сторінки жміть End на клавіатурі, вибирайте галочку "Yes, Remove ALL of these options from the wp_options table." і Submit. Здавалося би все — діло зроблене, але насправді ці дані все ще лишились в базі і для того щоб їх остаточно знищити слід зробити оптимізацію таблиць. Для цього заходимо в PhpMyAdmin і вибираємо таблицю wp_options а внизу вибираєм пунктик "Optimize Table"
wordpress optimization

Знищуємо таблиці від непотрібних плагінів

Як швидко дізнатись, що таблиця не "рідна-вордпресовська" а від плагіну?
По замовчуванню вордпрес створює 10 таблиць:
wp_comments
wp_links
wp_options
wp_postmeta
wp_posts
wp_terms
wp_term_relationships
wp_term_taxonomy
wp_usermeta
wp_users
Думаю у вас кількість таблиць значно більша і вияснити яка з них іще використовується, а яка вже ні, справа дещо складніша. Я лише так "на око" по назвам прикидував, здебільшого в назвах міститься натяк на те до якого плагіна вона відноситься. Ті таблиці що мені були невідомі я просто назву їх закидував в гугль і дивився результат. Таким чином з бази я викинув 21-у таблицю із 35!

Виправлення помилки в кодуваннях таблиць бази даних WordPress

В мене виявилось що по налаштуваннях MySql на хостингу всі нові таблиці створювались в кодуванні latin1_swedish_ci що є зовсім неправильним, але легко виправляється. Для цього в PhpMyAdmin в закладці Operations(Операции) знаходимо рядок: Collantions (Сравнение) і міняємо його на utf8_general_ci. Go! ok.
А от як бути з тими що вже в неправильному кодуванні? В інтернеті є описаний спосіб як його поміняти, але мені було простіше видалити всі таблиці в неправильному кодуванні і заново активувати плагіни що їх створювали (але в цьому я був впевнений, а вам так діяти не рекомендую, краще залишіть як є).

Видаляємо ревізії постів
В новій версії вордпресу ввели таке поняття як ревізії. Оскільки більшості ця функція нафіг не впала, то її можна вимкнути тим самим ще зменшити розмір бази даних і не давати їй так швидко розростатись. Для цього в файлі wp-config.php вимикаємо ревізії:

define('WP_POST_REVISIONS', false);

а потім все в тому ж PhpMyAdmin (Ви ж іще не закрили вкладку із ним, чи не так ;)) робимо запит:

DELETE FROM wp_posts WHERE post_type = 'revision'; 

Опісля виділяємо таблицю wp_posts і робимо її оптимізацію (надіюсь ще пам'ятаєте, пару абзаців вище я писав як ще робиться)

Викидуєм зайве з Dashboard (панель керування)
Ну і нарешті заліземо в один файлик — wp-admin/index.php з якого викинемо зайві рядки, аби нові rss-новини більше не засмічували базу.

<div id="dashboard-widgets-wrap">

<?php wp_dashboard(); ?>

</div>

От той рядок що закресленний якраз і треба викинути. Незручність лише в тому, що при кожному оновленні версії WordPress прийдеться знову чистити базу від RSS-каналів новин та знову видаляти цей рядочок у файлі.
В результаті цих дій я отримав таку картину:
wordpress optimization
і я нею задоволений, з 3-ох мегабайт зменшити базу до 1 метра!
p.s. До речі, плагін Clean Options після всіх цих дій, можна вимкнути, а коли обновитесь до нової версії WordPress то знову ввімкнете і повторите ці дії.

Post to Twitter

20 коментарівrss-comments

[@] ]]>masterpiecer]]> 14 листопадаа 2008 22:24

Респект! Щоправда я не досяг таких супер результатів (2.8 Мб – 2.5 Мб), але тримати все в порядку – надзвичайно приємно :)

]]>lilumi]]> 14 листопадаа 2008 22:31

хм. цікаво, можливо в тебе в адмінці вже були вирізані rss-потоки новин?

[@] ]]>masterpiecer]]> 14 листопадаа 2008 22:40

Не знаю, ну я там ще деякі повидаляв сторонні таблиці… Ну от так десь :)

 
 
 
]]>podarok]]> 15 листопадаа 2008 00:26

в мене не вордпрес, але результат чистки іноді із 80 мегабайт до 20

]]>lilumi]]> 15 листопадаа 2008 13:27

це в друпалі така чистка можлива ?
А чого ти кажеш що оптимізацію бази данних непотрібно робити?
В мене просто раніше дуже часто появлялися error_log’и а з тих пір як зробив цю оптимізацію, то тьху-тьху, більше не появлялись

 
 
[@] ]]>hellveen]]> 15 листопадаа 2008 01:32

Класно)
а от так швидко міняти кодування я би не радив – у мене з цим були дуже серйозні проблеми http://blogoreader.org.ua/2008/06/18/moving-wordpress-to-new-hosting/

]]>lilumi]]> 15 листопадаа 2008 13:39

я колись читав ту статтю в тебе і тоді побоявся щось у себе міняти.
А зараз начитався купи книжок і вирішив ризикнути =)

 
 
]]>LaSet]]> 18 листопадаа 2008 04:59

багато плагінів не мають деінсталяції свої таблиць, тому такі чистки можна робити

але ефект буде чисто пізнавальний

 
]]>Igor]]> 11 Грудня 2008 20:50

лишнє » зайве
мусор » сміття
Панель управління » Панель керування
полей » полів
виключити (в сенсі turn off) » вимкнути
включити (в сенсы turn on) » увімкнути

і дурне запитання — насправді так впирається в розмір бази даних? :)

P.S. повідомляти про нові до цього поста » повідомляти про нові коментарі до цього постУ (або, ще краще, запису — але мабуть всюди на сайті саме “пост”)

]]>lilumi]]> 15 Грудня 2008 16:31

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

Впирається не в розмір бази даних а в тому аби навести порядок і позбавитись зайвого.

]]>kernpro]]> 26 Грудня 2008 12:15

можу допомогти в цьому питанні, я прихильник чистого укр-нету

 
 
]]>kernpro]]> 26 Грудня 2008 12:16

абсолютно підписуюся під дурним запитанням ;-) (тобто приєднуюся)

 
 
[@] ]]>Bohdan]]> 2 Січня 2009 11:52

Дякую, викинув багато непотребу..

]]>lilumi]]> 2 Січня 2009 15:53

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

 
 
]]>bubastic]]> 1 Грудня 2009 08:35

>> DELETE FROM wp_posts WHERE post_type = “revision”;
не совсем правильно

Лучше выполнить такой запрос
DELETE `p`, `pm`, `c`, `tr`
FROM `wp_posts` AS `p`
LEFT JOIN `wp_postmeta` AS `pm`
ON `p`.`ID` = `pm`.`post_id`
LEFT JOIN `wp_comments` AS `c`
ON `p`.`ID` = `c`.`comment_post_ID`
LEFT JOIN `wp_term_relationships` AS `tr`
ON `p`.`ID` = `tr`.`object_id`
WHERE
`p`.`post_type` = ‘revision’;

 
]]>Vendock]]> 1 Грудня 2011 11:03

Топовая гильдия World of Warcraft ждет вас на сервере Гордунни.

 
[@] ]]>Тусько]]> 24 Грудня 2012 00:50

Було: 848.8 КБ :D
Стало: 792.8 КБ

Ще використовував WP Optimize :)

з кодуванням те ж саме було)
latin1_swedish_ci на utf8_general_ci поміняв без проблем)

[@] ]]>Тусько]]> 24 Грудня 2012 01:51

іншу базу оптимізував з 2,4мб до 1,4мб

дякую за допомогу)))

 
 
]]>Lawanda]]> 22 Липня 2016 21:49

We detliifeny need more smart people like you around.

 

Ваш коментар

LilumiМене звати LiluMi, а це мій блоґ. Тут про веб-розробку та лайфхаки. Рекомендую підписатись на RSS Інформацію про мене читайте на сторінці me LiluMi
UA TOP Bloggers
Рейтинг блогов Рейтинг блога lilumi.org.ua Рейтинг блогов



Тобі передають привіт 56 медвежаток. Це підняло тобі настрій на 1,910 а в Австралії живе колібрі у якої дзьобик довжиною на 29.07см.