Какво да направя, за да намаля размера на голяма база данни?

В СуперСъпорта се справяме с много и различни казуси. Днес ще Ви дадем няколко съвета как да се справите с един често срещан казус, който може да доведе до неприятни ситуации, а именно – големия размер на базата данни.

Когато базата данни е с голям размер, това може да доведе до няколко неприятни ситуации. Първата е, че в комбинация с неоптимални заявки и липса на индекси, ще причини голям спад в производителността на базата. Това ще се отрази в забавено зареждане на сайта, от което той ще загуби посетители и позиции в Google. Другата страна на нещата е, че ще се достигнат определени параметри на хостинг плана като „размер на база данни“, „процесорни минути“ и други.

Бележка: Важно е да се отбележи, че доколко ще се намали производителността на базата данни, зависи от използваните заявки и доколко те са максимално оптимизирани. Ако заявките не са оптимизирани добре, спад в производителността на базата ще се усети и при по-малки размери (MB). Например в нашия опит с подобни ситуации сме попадали на база данни с размер от 100MB и зареждане на страници от сайта за над 10 секунди, само заради неоптимални заявки. Ако заявките са оптимизирани много добре, тогава размерът на базата данни може да не окаже такова влияние върху производителността, докато не достигне завидни размери (GB,TB).

Разрастването на базата данни е естествен резултат от разрастването на съответния сайт и увеличаването на продуктите, статиите, потребителите или други обекти от данни в него.

Понякога, често срещано при готовите системи за сайтове като WordPress, разрастване на размера на базата данни може да се получи с времето от инсталиране и деинсталиране на плъгини, събиране на статистически данни, временни системни данни, кеш обекти, логове, спам коментари, спам статии и други. Така в базата данни се натрупва ненужна информация, която само увеличава размера ѝ.

Намаляване на размера на базата данни е възможно, като се почисти ненужната информация.

Как да намаля размера на базата данни?

Проверката за ненужна информация в базата започва с проверка на таблиците в нея. Тези таблици, които са с най-голям размер са първите за проверка – какво генерира информацията в тях, дали не може да се премахне и да се спре бъдещото ѝ натрупване.

Проверка на размера на базата данни

Списък с базите данни в хостинг акаунта.

Ако сега се питате дали Вашата база данни е с голям размер, можете бързо и лесно да проверите през контролния панел cPanel » MySQL бази данни.

Можете да проверите дали размерът на базата данни е достигнал или надвишил 100% от стойността на параметъра (1024 MB) за използвания хостинг план, през Вашия клиентски профил (superhosting.bg) » Хостинг акаунти » Детайли » Разширени системни параметри.

Също така, при достигане и надвишаване над 100% от стойността на параметъра за използвания хостинг план, ние ще Ви изпратим имейл нотификация.

Ако базата данни е с голям размер, следващата стъпка е да проверите таблиците в нея за ненужна информация и ако има такава да я премахнете.

Проверка на размера на таблиците

За да разберете какво точно предизвиква увеличаването на размера на базата, проверете съдържанието на таблиците. Но преди това, проверете кои таблици са с най-голям размер.

Проверка на таблиците и размера им, се извършва през cPanel » phpMyAdmin.

Влезте в cPanel, заредете phpMyAdmin, отворете базата данни за сайта и подредете таблиците по големина. Първата таблица в списъка е с най-голям размер.

Списък на таблиците в базата данни.
Списък на таблиците в базата данни.

Когато използвате готова система за сайта, имената на таблиците подсказват за коя функционалност или от кой плъгин се използват.

Може да има повече от една таблица, която да е с голям размер. Според таблицата и използването ѝ от системата на сайта, може да се насочите към решението дали да премахнете данни от нея или не.

Изтриване на таблици или данни в тях

Изтриване на таблици или данни в тях, може да се извърши през phpMyAdmin. За изтриване на таблица може да се ползва опцията Drop. За премахване на определени данни в таблицата може да се използва специално написана SQL заявка. Опцията Empty ще изчисти цялото съдържание в таблицата.

Другите начини за изтриване на данни в базата данни са: чрез налична функционалност през самата администрация на сайта или с използването на допълнителен плъгин/модул.

Бележка: Първо направете бекъп на базата данни – резервно копие, след това започнете да я разчиствате. Още по-добре ако извършите изтриването на данни върху тестово копие на сайта.

Няколко често срещани големи таблици в CMS

При готовите системи за управление на съдържанието (CMS – Content Management System) има определени таблици, които често са основната причина за голям размер на базата данни.

WordPress

С времето в базата данни на WordPress се натрупват записи и дори цели таблици, които вече не са нужни на сайта. Таблиците на деинсталираните плъгини може да се премахнат без това да афектира работата на сайта.

Някои от таблиците на WordPress, които може да се проверят и разчистят, са:

🗃 wp_options
В тази таблица се записват данни и настройки на инсталираните плъгини. Ако сте премахнали даден плъгин, може да почистите неговите данни от тази таблица. В тази таблица проверете още за натрупани ненужни временни данни (кеш обекти – transients). Възможно е да се е натрупала много информация от плъгина WooCommerce (wc_session), която може да се премахне през меню System Status » Tools – опция за ръчно изтриване на тези записи или само на неактуалните (expired).

🗃 wp_posts
Проверете дали в тази таблица няма натрупани спам публикации. Също така, проверете какъв брой версии (revisions) се записват за една статия. Ако са повече от 3, помислете да ги намалите и да изчистите вече записаните в базата данни.

🗃 wp_comments
В тази таблица проверете за спам коментари и ако има такива ги изчистете. Може да активирате Akismet плъгина, за да може спам коментарите да се изчистват автоматично.

Ненужната информация може да се изчисти от базата ръчно или чрез плъгин за оптимизация на базата данни като WP-Optimize, WP-DBManager и Transients Manager.

Drupal

В базата данни на Drupal може да се записват логове на системните съобщения за грешки.

Таблицата, в която се записват логовете, е с име „watchdog„. В случай че логовете за грешки не са Ви нужни, можете да изчистите таблицата. Това ще е решение на първо време, но трябва да проверите какви са грешките и по възможност да ги поправите.

Prestashop

В базата данни на Prestashop може да се записва статистическа информация за посещенията. Проверете следните таблици в базата и премахнете информацията ако не е необходима: ps_connections, ps_connections_source и ps_connections_page.

Magento

Както при останалите системи, ако в базата на Magento се записват логове и статистически данни, проверете таблиците и ги почистете, например следните таблици: log_visitor_info, log_url_info, log_url и log_visitor.

В редки случаи е възможно да има много информация и в следната таблица core_url_rewrite. Решенията за намаляването ѝ обаче може да са по-специфични и да изискват по-задълбочени технически познания, например Magento core_url_rewrite table excessively large.

Оптимизиране на размера на базата данни

Оптимизирането на базата данни може да намали размера ѝ и да увеличи производителността ѝ.

Инструментите, посочени в тази статия, за оптимизиране на базата данни не променят кода в системата на сайта и заявките към базата данни и не изискват поддръжка от специалист. Оптимизациите се прилагат на ниво данни в базата данни, а не на ниво извличането им, поради това може да се извършат от всеки администратор на сайт.

За оптимизиране на базите данни може да се използва инструментът phpMyAdmin в cPanel или командата mysqlcheck през SSH достъп.

Важно: Преди да извършите каквито и да било операции с базата данни, направете нейно резервно копие.

phpMyAdmin – оптимизиране на базата данни

През phpMyAdmin можете да извършвате оптимизиране и поправка на базите данни.

Опцията за оптимизиране в phpMyAdmin (Optimize table) използва SQL командата OPTIMIZE TABLE. Тази оптимизация намалява заетото дисково пространство от базата и повишава ефективността на входно-изходните операции (I/O).

Оптимизацията е подходящо да се извършва след изтриване на големи обеми от информация в таблиците.

Заредете phpMyAdmin, вляво кликнете върху името на базата данни и вдясно маркирайте всичките ѝ таблици (Check all). След това от падащото меню изберете Optimize table.

Опцията за оптимизиране на базата в phpMyAdmin.
Опцията за оптимизиране на базата в phpMyAdmin.

Когато размерът на базата данни е голям, процесът по оптимизиране може да отнеме повече време.

SSH: mysqlcheck – оптимизиране на базата данни

За оптимизация на базата данни през SSH достъп, може да се използва командата mysqlcheck с параметър „-o“ (–optimize).

mysqlcheck -o cpuser_mydb -h localhost -u cpuser_mydbuser -pPassword

cpuser_mydb – заменете с името на базата данни, cpuser_mydbuser – потребителя за базата, Password – паролата за потребителя, изписва се слято след параметъра -p;

Оптимизиране на базата данни през конзолата с mysqlcheck.
Оптимизиране на базата данни през конзолата с mysqlcheck.

Крон задача – автоматично оптимизиране на базата данни

SSH командата mysqlcheck може да се използва в крон задача (cron job), за периодично автоматично оптимизиране на базата данни. Препоръчително е да се прави оптимизация на базата данни поне веднъж на месец, или по-често, в зависимост от това колко често се извършват промени в базата.

При създаването на крон задачата в cPanel, в полето за изпълнение на команда трябва да се попълни:

/usr/bin/mysqlcheck -o -v -u cpuser_mydbuser -pPassword -h localhost cpuser_mydb

cpuser_mydb – заменете с името на базата данни, cpuser_mydbuser – потребителя за базата, Password – паролата за потребителя, изписва се слято след параметъра -p;

Настройки на крон задача в cPanel.
Настройки на крон задача в cPanel.

Ако искате да видите резултатите от изпълнението на командата, може да посочите имейл адрес в cPanel страницата с крон задачите или да поставите след командата „> dboptimize.txt“:

/usr/bin/mysqlcheck -o -v -u cpuser_mydbuser -pPassword -h localhost cpuser_mydb > dboptimize.txt

Каква е ползата от намаляването и малкия размер на базата?

Когато базата данни е с малък размер, производителността на системата ще е с максимални показатели. Когато базата данни е бърза, с оптимизирани заявки и правилни индекси, тогава и зареждането на сайта ще е бързо.

В днешно време, особено след като и Google приема скоростта на зареждане (мобилно и десктоп) като фактор за позиционирането на сайта, всеки сайт ще се стреми към по-бързо зареждане.

Понякога обаче, намаляване на размера на базата данни не е възможно, когато сайтът се е разраснал и всички данни в таблиците са нужни. В тези случаи сайтът ще има нужда от повече ресурси и място, за да може да се разраства и в бъдеще. За да се осигури безпроблемна работа на сайта и базата му данни, има подходящи хостинг решения като собствен управляем виртуален сървър – Managed VPS или VPS.

Мадлена Методиева
Мадлена Методиева
Меган е част от СуперМаркетинг екипа. Мисията ѝ е старателно да попълва е-библиотеката на СуперХостинг.БГ с полезни и помощни статии.
0 0 votes
.
Абониране
Уведоми ме при
guest

0 Коментара
Inline Feedbacks
View all comments
Какви са ползите от SSL сертификата за сайта и неговите потребители?

Какви са ползите от SSL сертификата за сайта и неговите потребители?

0
Използването на SSL сертификат и сигурна HTTPS връзка за сайта е категоричен показател, че държите на доверието и сигурността на посетителите му.
Какво е CMS (Content Management System)?

Какво е CMS (система за управление на съдържание)?

0
CMS (система за управление на съдържание) е софтуерен инструмент за лесно и бързо създаване на сайт и след това лесно поддържане на съдържанието в него.
SaaS?

SaaS? Що е то и кое го прави най-подходящата платформа за Вашия онлайн магазин

0
SaaS услугата ви дава възможност лесно и бързо да стартирате собствен електронен магазин и да развивате бизнеса си в интернет.