Wordpress : проста і ефективна оптимізація бази данних
Ви здивуєтесь коли я вам скажу, що в базі даних вордпресу знаходиться 80% лишньої, нікому не потрібної інфи. А так і є.
В моєму випадку з бази я викинув 67% мусору, у вас я думаю показники будуть більші. Отож по порядку:
- Clean Options - чистим опції
- Знищуємо таблиці від непотрібних плагінів
- Міняємо кодування бази даних Вордпресу
- Вилучаємо ревізії постів
- Викидаєм лишнє з Dashboard
А почалося все з цього:
Зверніть увагу на таблицю 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"
Знищуємо таблиці від непотрібних плагінів
Як швидко дізнатись, що таблиця не "рідна-вордпресовська" а від плагіну?
По замовчуванню вордпрес створює 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-каналів новин та знову видаляти цей рядочок у файлі.
В результаті цих дій я отримав таку картину:
і я нею задоволений, з 3-ох мегабайт зменшити базу до 1 метра!
p.s. До речі, плагін Clean Options після всіх цих дій, можна виключити, а коли обновитесь до нової версії Wordpress то знову включите і повторите ці дії.
оригінал статті Wordpress : проста і ефективна оптимізація бази данних
та коментарі можна проглянути тут