Натрупването на много записи в базата данни води до ненужно увеличаване на размера ѝ и по-важното – до по-ниска скорост и производителност на работата на сайта.
Добра практика е регулярно да се преглежда и намалява (ако е възможно) обемът от ненужни данни в базата данни. Поддържането на оптимален размер на базата данни е препоръчително не само когато се достигне до 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.
В раздел Clean up има много опции за почистване на записите в таблиците на плъгина. Тази, с която ще почистите таблицата icl_string_pages
, е Cleanup and optimize string tables.
След почистването и оптимизирането, всички записи от таблицата icl_string_pages
ще бъдат премахнати.
WooCommerce
WooCommerce v.5.3.x
woocommerce_sessions
Посочената таблица съхранява информация за клиентските сесии на Вашия WooCommerce магазин.
Записите в таблицата може да изтриете през администрацията на сайта от настройките на плъгина WooCommerce » Status » Tools » Clear customer sessions – Clear.
WP Statistics
WP Statistics v.10.0.x
statistics_visitor
Натрупаните данни в тази таблица са статистически и са свързани с отчитане на посещенията на Вашия сайт от плъгина WP Statistics. Подобни данни се натрупват с времето при работата на сайта.
Ръчно почистване на стари данни в WP Statistics
Можете да изчистите цялата таблица от съдържание или да премахнете само най-старите данни в нея.
За да изтриете цялото съдържание в таблицата, достъпете Statistics » Optimisation » таб Purging.
В първата опция Empty Table изберете от падащото меню таблицата statistics_visitor
и кликнете Clear now!
Може да изтриете данните, които са по-стари от определен брой дни, например по-стари от 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.
В раздел 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.
В настройките на 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 заявка, с която можете да изтриете стари записи в таблицата:
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
– променете годината/датата, всички записи, по-стари от тази дата, ще бъдат премахнати;
За цялостно изтриване на съдържанието в двете таблици, за всяка една поотделно, може да изберете опцията 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.
В зависимост от това коя система използвате за търсенето във форума, изтрийте натрупаните записи за активната (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.