Řada dnešních hostingů pro WordPress nabízí neomezený (nebo hodně dostatečný) prostor pro soubory, ale omezenější prostor pro databázi (SQL). Co dělat když vám dochází místo v databází?
U většiny hostingů si můžete připlatit na rozšíření databáze, ale možná je lepší se nejprve podívat, co vám vlastně v databázi zabírá místo.
Pokud máte přístup k administraci SQL serveru na hostingu (typicky něco jako PHPMyAdmin), tak začněte klidně tam – umožní vám to zjistit, která z tabulek zabírá nejvíc místa (má nejvíce záznamů) a podle toho se můžete rozhodnout co s tím.
Pokud se nechcete pouštět do ručního čištění (pomoci SQL příkazů) tak je vhodné zkusit některé z pluginů, které to usnadňuj – WPS Cleaner, WP-Sweep, Advanced Database Cleaner, WP Optimize
Nejčastějším důvodem velké databáze mohou být komentáře (wp_commentmeta) za předpokladu, že je máte povolené. A zejména pokud se vám tam procházejí spamovací komentářoví boti.
Druhý nejčastější bude wp_postmeta kde jsou detaily k (nejenom) článkům – má tendenci bobtnat revizemi, nemazat staré věci a vůbec dělat neplechu.
A samozřejmě wp_posts kde jsou všechny typy příspěvků (a nějaké další věci), za předpokladu. že máte web s hodně příspěvky.
Pro FeedIT.cz to byl například právě ten hlavní problém – 59 713 Posts and 785 122 Post Meta – v wp_postmeta bylo 615 845 duplikátů.
U (nejenom) WPS Cleaner ale pozor u hostingů, kde je nastavený velmi krátký PHP Timeout – některé z funkcí (zejména kontrola souborů) mohou být tak časově náročné, že to prostě PHP Timeout znemožní.
Po promazání ale stejně budete zpravidla potřebovat nějaký ten phpMyAdmin – promazané tabulky totiž můžete zkusit optimalizovat aby zmizely smazané věci. Zpravidla se to dělá v přehledu tabulek pro každou jednotlivou (a WP Sweep to umí vyvolat). Samozřejmě to můžete udělat ručně přes SQL příkaz. Celé to ale může mít háček, že se nic s ohledem na velikost SQL databáze nezmění – bude to záležet na nastavení SQL Serveru. Každopádně by to ale mělo pomoci v zastavení růstu – vzniklé volné místo se bude recyklovat.
Chybí-li vám přihlašovací údaje pro SQL server tak to má poměrně snadné řešení – ve wp-config.php na vašem webu najdete jak ID, tak heslo, Případně si můžete v administraci většinou vytvořit dalšího uživatele jen pro sebe.
Pokud se budete rozhodovat mezi WP Sweep a WPS Cleaner, tak možná zkuste ten první – trochu líp ukazuje čísla. Oba ale v zásadě umí přesně to samé a rozhodně neumí vyřešit všechny problémy.
POZNÁMKA: Váš webhosting by měl varovat včas, když se plní databáze – Blueboard to posílá e-mailem (a i SMS, velmi užitečné) když je na 80 % dostupného prostoru (1 GB). Pokud to nedělá a máte kombinaci menšího prostoru vs. větší web, tak to může být komplikace.
Pokud byste chtěli plugin co vám ukáže velikost tabulek v KB/MB tak Advanced Database Cleaner pomůže víc než dvě předchozí.
A pokud byste třeba chtěli zjistit co máte ve wp_posts a co tam zabírá místo, tak třeba takto:
SELECT
post_type,
ROUND(
SUM(
LENGTH(
CONCAT(
ID, post_author, post_date, post_date_gmt, post_content, post_title, post_excerpt, post_status, comment_status, ping_status, post_password, post_name, to_ping, pinged, post_modified, post_modified_gmt, post_parent, guid, menu_order, post_type
)
)
)/1048567, 2
),
COUNT(*)
FROM wp_posts
GROUP BY post_type
Případně detailnější rozpis podle “větších” polí (dívá se i na post_content_filtered kde by v principu nic nemělo být, ale může k tomu dojít)
SELECT post_type,
ROUND(SUM(LENGTH(post_content))/1024/1024,2) as Content,
ROUND(SUM(LENGTH(post_title))/1024/1024,2) as Title,
ROUND(SUM(LENGTH(post_excerpt))/1024/1024,2) as Excerpt,
ROUND(SUM(LENGTH(to_ping))/1024/1024,2) as ToPing,
ROUND(SUM(LENGTH(pinged))/1024/1024,2) as Pinged,
ROUND(SUM(LENGTH(post_content_filtered))/1024/1024,2) as ContentFiltered,
COUNT(*)
FROM wp_posts
GROUP BY post_type
Stejně tak se může hodit podívat se na velikost tabulek a indexu. Musíte tam jenom vyměnit “database_name” za jméno té vaší
SELECT table_name AS "Table",
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS "Size (MB)"
FROM information_schema.TABLES
WHERE table_schema = "database_name"
ORDER BY (data_length + index_length) DESC;
Pokud byste chtěli vidět zvlášť data a zvlášť indexy
SELECT table_name AS "Table",
ROUND(data_length/ 1024 / 1024, 2) AS "data (MB)",
ROUND(index_length/ 1024 / 1024, 2) AS "index (MB)"
FROM information_schema.TABLES
WHERE table_schema = "database_name"
ORDER BY (data_length + index_length) DESC;
WHERE řádku mimochodem můžete vynechat, pak se vám to ukáže prostě pro všechny tabulky, které v databázi máte.
Další tipy týkající se WordPressu
-
TIP#3228: Co byste po instalaci WordPressu měli smazat či změnit? Další soubory
O install.php už byla řeč v samostatném tipu (Co byste po instalaci WordPressu měli smazat či změnit? install.php – pozor ať nedopadnete špatně), ale to zdaleka není vše, co je vhodné po…
-
TIP#3201: WordPress Transients. Proč byste měli dávat pozor na další věc
Transienty jsou jednoduchý způsob, jak do WordPressu odložit výsledek nějaké nákladnější operace: například odpověď z externího API, složitý databázový dotaz, vygenerovaný seznam článků, statistiky nebo mezivýsledek z pluginu. Související příspěvky TIP#2304: Je…
-
TIP#2981: Jak v Uptime Kuma nastavit upozornění na výpadek e-mailem?
Provozuji pár serverů (jako třeba tenhle, 365tipů) a to jestli běží (a jak „rychle“ běží) si hlídám pomocí Uptime Kuma. Nejprve na QNAP NAS, později v Dockeru na RaspBerry Pi 5. Související…
-
TIP#2967: Proč nejít “blogovat” na Seznam Médium
Nedávno jsem s jedním klientem řešil otázku kde blogovat. Já doporučoval “na vlastním” jako ideální, a když už ne, tak něco jako Substack, kde to nic nestojí a je tam i hodně…
-
TIP#2957: Co když WordPress náhle začne místo článků (všech, ne jen některých) vracet chybu 404?
Zvláštní věc, která se mi stala už tuším víckrát. Na FeedIT.cz naposledy před pár dny. Náhle místo článků začal web vracet 404ky. Nedošlo k žádné aktualizaci, žádné změny v pluginech, prostě nic. …
-
TIP#2918: Jak z WordPressu smazat všechna média?
V rámci úklidu na rychlofky (#tyden) to nebylo jenom o smazání záplavy příspěvků, ale také prakticky všech médií (attachments), které ty příspěvky měly. Související příspěvky TIP#774: Má smysl si na WordPress.com zapínat…
-
TIP#2907: Jak ve WordPressu smazat velké množství příspěvků? Ideálně všechny?
V době kdy #tyden měl webovou verzi se na rychlofky.cz nashromáždilo dobrých 12 tisíc (velmi krátkých) příspěvků. Roky starých a také nenavštěvovaných, Google (vyhledávače) nemají rády krátké příspěvky a neumístí je do…
-
TIP#2871: WordPress a jak docílit toho, aby obrázky v příspěvcích měly stín?
Chcete trochu vylepšit příliš plochý design článků a svého webu na WordPressu? Můžete to udělat tak, že obrázky opatříte stínem. Budou vystupovat z jinak plochého článku a vylepší jeho čitelnost. Související příspěvky…
-
TIP#2807: Bit.ly zavádí reklamu a splash screen? Co s tím? Jak na vlastní zkracovač?
Bit.ly, jeden z mála původních a široce rozšířených zkracovačů adres (URI) za pár měsíců zavede zobrazování reklamy pro ty, kdo kliknou na bit-ly odkaz. Doposud to fungovalo aniž by kliknutí bylo jakkoliv…
-
TIP#2799: Sdílíte nějaký odkaz? Měli byste ho vyčistit od věcí, které tam nemají zůstat
Zapeklitá záležitost, něco jste si otevřeli na Internetu nebo v aplikaci a chcete to nasdílet pomocí odkazu (link). V mnoha případech se k odkazu samotnému přidá řada dalších zbytečných věcí. Někde, třeba…
-
TIP#2791: Mám na webu WordPress v “anglické” verzi, je bezpečné přeinstalovat (změnit) na cs_CZ (či opačně)?
Může se vám to stát velmi lehce a možná si toho ani nevšimnete. Máte českou verzi WordPressu a při některé z aktualizaci si nevšimnete, že vám vlastně nenabízí českou, ale anglickou. To…
-
TIP#2753: Proč mi aktualizace WordPressu cs_CZ (českého) nabízí aktualizace na en_US?
Právě teď je to aktuální. Objevil se WordPress 6.6 a pro všechny weby s cs_CZ to nabízí (a vlastně i dost vnucuje) aktualizaci na tuto verzi, jenže en_US. Související příspěvky TIP#3201: WordPress…
-
TIP#2733: Vývojová prostředí pro lokální vývoj pro WordPress (a webdesign vůbec)
Lokální vývojové prostředí vám umožní na vašem lokálním stroji mít vše co potřebujete pro provozování webu (s WordPressem, ale může to být i cokoliv jiného) – tedy web server (Apache, například), SQL…
-
TIP#2592: Ještě stále máte na webu Google AMP? Je to zlo, rychle s tím pryč
Je to vlastně už docela dlouho, co jsem na všech mých webech zrušil podporu Google AMP. Pak jsem delší dobu chtěl napsat tip tomu věnovaný, ale nějak to zapadlo v záplavě jiných…
-
TIP#2554: Potřebujete vyměnit obrázek v médiích na vašem WordPressu? Je nutné mít plugin
Jedna z věcí, kterou (neznámo proč) WordPress neumí přímo. Můžete nahrát média (obrázek, fotku, atd) ale když chcete nahrát upravenou verzi, tak to není možné. Přitom je to dost zásadní věc, kterou…




















