1. Начало
  2. Уеб сайт
  3. Оптимизиране на уеб сайт
  4. Намаляване на размера на базата данни

Намаляване на размера на базата данни

Натрупването на много записи в базата данни води до ненужно увеличаване на размера ѝ и по-важното – до по-ниска скорост и производителност на работата на сайта. 

Добра практика е регулярно да се преглежда и намалява (ако е възможно) обемът от ненужни данни в базата данни. Поддържането на оптимален размер на базата данни е препоръчително не само когато се достигне до 1 GB големина на базата данни.

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

Изтриването на ненужните данни ще олекоти базата данни и ще ускори зареждането на приложението, което я използва.

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

Преди да промените или изтриете нещо от базата данни, винаги правете неин бекъп.

Създаването на резервно копие на базата данни е лесно и има няколко начина да го направите. 

Ако базата данни е с размер под 100 MB, можете да използвате опцията за копиране на база в phpMyAdmin. Ако базата е с много по-голям размер, можете да свалите неин бекъп през cPanel » Бекъп (Частични бекъпи) или с експорт през SSH.

Вижте подробно упътване за всички начини, по които можете да направите бекъп само на базата данни: 🔗 Как да направя резервно копие на базата данни? | Help

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

Възстановяване на база данни от системно генериран бекъп, може да се извърши през Backup Manager в cPanel: 🔗 Backup Manager by SuperHosting | Help

Възстановяване на WordPress база данни може да се извърши бързо и лесно през инструмента в cPanel » WordPress Manager: 🔗 Възстановяване на архив през WordPress Manager SH | Help

WordPress

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

WPML

WPML v.4.4.x

icl_string_pages

Посочената таблица съхранява кеш информация за плъгина WPML. Записите в таблицата биха могли да се изчистят. Разработчиците на плъгина също посочват, че може да се изтрие кеш информацията в тази таблица. Това е описано и на официалната страница на плъгина: https://wpml.org/forums/topic/table-wp_icl_string_pages-is-too-big/.

Изтриването на ненужната информация в тази таблица може да направите през администрацията на сайта от настройките на плъгина WPML » Support » troubleshooting.

В меню Support ще намерите линк „troubleshooting“.
В меню Support ще намерите линк „troubleshooting“.

В раздел Clean up има много опции за почистване на записите в таблиците на плъгина. Тази, с която ще почистите таблицата icl_string_pages, е Cleanup and optimize string tables.

Бележка: Посочената таблица icl_string_pages официално не се използва от плъгина от версия WPML 4.3. Ако използвате стара версия на плъгина, опцията за изчистване на тази таблица е Recreate ST DB cache tables.

С опцията Cleanup and optimize string tables се извършва почистване и оптимизиране на всички таблици, в които се съдържат преводни стрингове.
С опцията Cleanup and optimize string tables се извършва почистване и оптимизиране на всички таблици, в които се съдържат преводни стрингове.

След почистването и оптимизирането, всички записи от таблицата icl_string_pages ще бъдат премахнати.

Таблицата icl_string_pages е почистена.
Таблицата icl_string_pages е почистена.

WooCommerce

WooCommerce v.5.3.x

woocommerce_sessions

Посочената таблица съхранява информация за клиентските сесии на Вашия WooCommerce магазин.

Записите в таблицата може да изтриете през администрацията на сайта от настройките на плъгина WooCommerce » Status » Tools » Clear customer sessionsClear.

Изчистване на клиентските сесии от базата данни.
Изчистване на клиентските сесии от базата данни.

Важно: Изтриването на клиентските сесии от базата данни ще премахне данните за съществуващи колички в момента на сайта, както и запазените колички. Преди да почистите тази таблица, може да активирате временно режим на профилактика за магазина. Режимът може да се активира например със специален за тази цел плъгин. Вижте още: 🔗 Как се активира режим на профилактика за WordPress сайт? | Help

WP Statistics

WP Statistics v.10.0.x

statistics_visitor

Натрупаните данни в тази таблица са статистически и са свързани с отчитане на посещенията на Вашия сайт от плъгина WP Statistics. Подобни данни се натрупват с времето при работата на сайта.

Ръчно почистване на стари данни в WP Statistics

Можете да изчистите цялата таблица от съдържание или да премахнете само най-старите данни в нея.

За да изтриете цялото съдържание в таблицата, достъпете Statistics » Optimisation » таб Purging.

В първата опция Empty Table изберете от падащото меню таблицата statistics_visitor и кликнете Clear now!

Изтриване на съдържанието в таблица statistics_visitor.
Изтриване на съдържанието в таблица statistics_visitor.

Може да изтриете данните, които са по-стари от определен брой дни, например по-стари от 365 дни. За да изчистите старите данните в тази таблица, в опция Purge records older than попълнете желаните дни и изберете Purge now!

Автоматично почистване на стари данни в WP Statistics

За да активирате автоматичното почистване на стари данни, достъпете Statistics » Settings » таб Maintenance.

Активирайте автоматичното почистване на стара информация, като маркирате опцията Enabled.

Опция за автоматичното почистване на стара информация.
Опция за автоматичното почистване на стара информация.

За опцията Purge data Older Than въведете за колко дни назад да се пази информацията, например 30 дни. Данните, по-стари от 30 дни, ще бъдат автоматично почиствани от таблиците на плъгина. Запишете промените с Update.

Drupal

Drupal v.9.1.x 

Cache

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

cache_metatag
cache_page
cache_dynamic_page_cache
cache_render

Натрупаните данни в тези таблица са от кеш съдържание. Подобни данни се натрупват с времето при работата на сайта. Същевременно обаче тези данни са временни и не са от ключово значение за работата на сайта.

Натрупаният кеш в посочените таблици може да се изтрие през администрацията на сайта от менюто Administration » Configuration » Development » Performance.

Меню Configuration в Drupal

В раздел Clear Cache изберете бутон Clear all caches.

Изтриване на натрупания кеш.
Изтриване на натрупания кеш.

Reports

watchdog

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

Изтриването може да се направи от администрацията на сайта от менюто: Administration » Reports » Recent log messages » таб Delete.

Изтриване на логовете.
Изтриване на логовете.

Потвърдете изтриването с Confirm.

Magento

Magento v.1.8/9.x

Логове

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

log_url
log_url_info
log_visitor
log_visitor_info

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

Изтриването може да се направи през администрацията на сайта от менюто: System » Configuration » Advanced » System » раздел Log.

Настройки за изчистване на логове и статистически данни.
Настройки за изчистване на логове и статистически данни.

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

Намалете броя на дните, за които да се съхранява лога. След автоматичното почистване, записите ще бъдат намалени в посочените таблици в базата.

Moodle

Moodle 3.9.x

Логове

В следната таблица на Moodle би могло да се изтрие информация:

logstore_standard_log

В тази таблица се записват системни логове на всички действия на потребителите в системата. Тези данни се натрупват с времето.

Проверете дали най-старите логове на действията са Ви необходими. Например от преди година и повече. Ако не са Ви нужни, можете да почистите тази таблица, като зададете в настройките на системата да се пазят логове само за последните 365 или 1000 дни.

Настройката за съхраняване на логовете се намира в администрацията – Site administration » Plugins » Logging » Standard log.

Меню в Moodle за настройка на логовете

В настройките на Standard log можете да промените за опцията Keep logs for от Never delete на някакъв период от време.

Задаване на период, за който да се пазят логовете.
Задаване на период, за който да се пазят логовете.

След като изберете периода и запишете промените, системата ще премахне по-старите записи от базата данни.

Повече информация бихте могли да намерите и на следния адрес: https://moodle.org/mod/forum/discuss.php?d=371919/.

OpenCart

OpenCart v.3.x

Сесии

За следната таблица при системата OpenCart би могло да се намали размера:

session

Натрупаните данни в тази таблица са от създадените сесии в системата. Подобни данни се натрупват с времето при работата на сайта, което води до увеличаването на базата данни. Бихте могли да изчистите най-старите записи в нея чрез SQL заявка през phpMyAdmin.

Влезте в phpMyAdmin. Кликнете вляво върху името на базата данни. Кликнете на таб SQL. Поставете SQL заявката за изчистване на старата информация и кликнете Go.

Изпълнение на SQL заявка за почистване на стари данни в таблицата.
Изпълнение на SQL заявка за почистване на стари данни в таблицата.

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

delete from os_session where expire < DATE_SUB(NOW(), INTERVAL X DAY);

В тази заявка заменете Х с броя дни. Например, за да изтриете всички записи по-стари от 30 дни, трябва заявката да бъде:

delete from os_session where expire < DATE_SUB(NOW(), INTERVAL 30 DAY);

os_ – заменете с префикса на таблиците във Вашата база данни;

Помощна информация може да намерите и на следния адрес: https://forum.opencart.com/viewtopic.php?t=200653.

PrestaShop

PrestaShop v.1.6/7.x

Статистики

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

connections
connections_source

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

Почистването на тези таблици може да се извърши през phpMyAdmin. Можете да използвате SQL заявка, с която се изчистват данните в таблиците по-стари от определен брой дни.

Отворете phpMyAdmin и изберете базата данни на PrestaShop.

SQL заявка за изтриване на стари данни (в таблиците connections и connections_source), с дата преди 2020-01-01:

DELETE c, cs
  FROM ps_connections c
  LEFT JOIN ps_connections_source cs ON (c.id_connections = cs.id_connections)
    WHERE c.date_add < '2020-01-01 00:00:00';
    
OPTIMIZE TABLE ps_connections, ps_connections_source;

ps_ – заменете с префикса на таблиците във Вашата база данни;
2020-01-01 – променете годината/датата, всички записи, по-стари от тази дата, ще бъдат премахнати;

SQL заявка за почистване на стари данни в таблиците.
SQL заявка за почистване на стари данни в таблиците.

За цялостно изтриване на съдържанието в двете таблици, за всяка една поотделно, може да изберете опцията Empty в списъка с таблици.

С опция Empty се изчиства цялото съдържание в дадената таблица.
С опция Empty се изчиства цялото съдържание в дадената таблица.

Вижте повече информация за SQL заявките, които можете да използвате за изчистване на базата на PrestaShop: https://www.prestashop.com/forums/topic/266421-500000-rows-on-ps_guest-sounds-too-big/?tab=comments#comment-2536346.

phpBB

phpBB v.3.3.x

Търсене

За следната таблица би могло да се намали размера:

search_wordmatch

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

Съдържанието на таблицата бихте могли да изтриете от административния панел на сайта. Това става от менюто ACP » Maintenance » Database » Search index.

Меню в phpBB с опции за търсенето.

В зависимост от това коя система използвате за търсенето във форума, изтрийте натрупаните записи за активната (active) Delete index. След това можете да прегенерирате индекса със Create index.

Изтриване на натрупаните записи от търсенето.
Изтриване на натрупаните записи от търсенето.

Ако има записи и по другите системи, които не са активни, можете да изчистите индексите им, тъй като те не се използват.

Настройките за търсене се намират в ACP » таб General » раздел Server Configuration » меню Search settings.

Можете да контролирате обема на думите, които ще се индексират (phpBB Native Fulltext, с опцията Common word threshold.

Настройки за търсенето във форума.
Настройки за търсенето във форума.

Ако дадена дума присъства в до 5% от всички постове, тя се индексира. Ако думата я има в над 5% от съдържанието във форума, тя се определя като обща (прекалено често срещана) и затова не се индексира. Ако искате да намалите броя на индексираните думи, може да намалите този процент, например на 4%, 3%, 2%, 1%.

Вижте още информация за индекса на думите за търсене в phpBB: https://www.phpbb.com/community/viewtopic.php?t=2352441.

Обновена: 14.10.2022
Беше ли Ви полезна тази статия?

Вижте още