Čištění databáze PrestaShopu: které tabulky rostou a jak je zmenšit
Čištění databáze PrestaShopu znamená odstranění starých dat, která e-shop už nepotřebuje: historie návštěv, opuštěných košíků hostů, starých záznamů v protokolu a tabulek po odinstalovaných modulech. Začněte změřením velikosti tabulek, udělejte zálohu databáze a pak mažte řádky starší než zvolené datum, po dávkách. Košíků s objednávkami se nedotýkejte.
Autor: Tým TellMyShop. Průvodce pro majitele obchodů na PrestaShopu: příčina, ruční oprava a stejná práce v rozhovoru v chatu.
Naposledy aktualizováno: · 6 min čtení
Proč databáze PrestaShopu roste, když počet produktů ne?
Protože e-shop zaznamenává každou návštěvu. Moduly statistik si zapisují, kdo přišel, odkud a které stránky prohlížel. Po několika letech můžou být tyto tabulky větší než celý katalog. K tomu přibývají košíky hostů, kteří nic nekoupili, záznamy protokolu chyb a tabulky modulů odinstalovaných bez úklidu.
Tým PrestaShopu ve svém návodu k péči o e-shop píše, že některé tabulky můžou časem velmi narůst, zatímco data v nich přestanou být potřeba. Mezi nimi uvádí tabulky připojení, které lze pravidelně čistit od starých záznamů.
Velká databáze se obvykle ohlásí takto:
- administrace se načítá pomalu, hlavně nástěnka a statistiky,
- záloha u hostingu trvá čím dál déle nebo překračuje limit,
- hosting upozorňuje na místo na disku nebo na limit databáze.
Když je pomalý samotný e-shop, příčina obvykle leží jinde. Širší diagnostiku popisujeme v návodu PrestaShop běží pomalu.
Které tabulky můžete vyčistit a které nechat být?
Názvy níže používají výchozí předponu ps_. Váš e-shop může mít jinou, nastavenou při instalaci.
| Tabulka | Co obsahuje | Lze vyčistit | Poznámka |
|---|---|---|---|
ps_connections, ps_connections_page, ps_connections_source | historie návštěv pro statistiky | ano, řádky starší než zvolené datum | statistiky za to období zmizí; tabulky obsahují IP adresy |
ps_guest | technická data hostů (prohlížeč, systém) | opatrně | řádky můžou být spojené s košíky a zákazníky |
ps_cart, ps_cart_product | košíky | jen staré košíky bez objednávky | košík s objednávkou je součástí historie prodeje |
ps_log | protokol chyb a akcí v administraci | ano, staré záznamy | posledních pár týdnů si nechte pro diagnostiku |
ps_pagenotfound | URL s chybou 404 | ano, staré záznamy | nedávné se hodí pro přesměrování |
ps_statssearch | fráze z vyhledávání v e-shopu | ano, staré záznamy | cenný pohled na zákazníky, zvažte export |
ps_mail | protokol odeslaných e-mailů | ano, staré záznamy | obsahuje e-mailové adresy zákazníků |
| tabulky starých modulů | data modulů, které už nejsou | po ověření, čí jsou | modul mohl být jen vypnutý |
ps_orders, ps_customer, ps_product a podobné | data prodeje, zákazníků a katalogu | ne | to je jádro e-shopu, ne materiál k úklidu |
Hranice, například „starší než rok“, si nastavte sami. Závisí na tom, jak dlouho potřebujete statistiky a co říkají vaše pravidla pro uchovávání dat.
K prohlížení dat má PrestaShop SQL Manager v Rozšířené parametry → Databáze. Uživatelská příručka PrestaShopu 8 vysvětluje, že jde o nástroj pro lidi, kteří znají SQL, a že blokuje dotazy, které data mění, jako DELETE. Samotný úklid se proto dělá mimo administraci, v phpMyAdmin u hostingu nebo modulem pro čištění.
Jak bezpečně vyčistit databázi krok za krokem?
Tento seznam je pro vašeho vývojáře, nebo pro vás, pokud pracujete v phpMyAdmin a rozumíte tomu, co děláte.
- Udělejte úplnou zálohu databáze u hostingu a ověřte, že jde stáhnout.
- Změřte velikost tabulek. Seřaďte je od největší. Často dvě nebo tři tabulky tvoří většinu velikosti.
- Rozhodněte, jaké období ponechat pro každou tabulku na seznamu k úklidu, například 12 měsíců statistik a 30 dní záznamů.
- Mažte řádky starší než datum, po dávkách, místo vyprazdňování celých tabulek. Jedno velké mazání může databázi na dlouho zamknout.
- Po každé dávce zkontrolujte e-shop: administraci, statistiky, košík, jednu testovací objednávku.
- Získejte zpět místo na disku. Po smazání řádků se tabulka často sama nezmenší. Optimalizaci tabulek obvykle dělá hosting nebo vývojář.
- Zapište si, co a kdy jste smazali, aby další úklid nezačínal od nuly.
PrestaHero popisuje ukázkové dotazy a přístup k těmto tabulkám. Některé návody radí tabulky úplně vyprázdnit. Je to rychlejší, ale přijdete o celou historii najednou, takže mazání podle data je opatrnější.
Jak chat pomůže databázi posoudit a vyčistit?
Nejbezpečnější je začít jen čtením. V TellMyShop Pro váš chat (Claude nebo ChatGPT) čte databázi e-shopu bez zapnutého přepínače, takže umí spočítat velikost tabulek a počty řádků a ukázat pozůstatky po modulech. Přitom nic nemění.
Vy: Databáze má několik gigabajtů. Zjisti, co zabírá místo. Nic nemaž.
Váš chat: Největší tabulky jsou historie návštěv a navštívené stránky. Dohromady tvoří většinu databáze. Na třetím místě je protokol chyb, kde je většina záznamů starší než rok. Našel jsem také tabulky modulu slideru, který už v seznamu modulů není. Historie návštěv obsahuje IP adresy, takže při současné úrovni přístupu k datům zákazníků její obsah nevidím. Navrhuji plán: záznamy protokolu starší než 90 dní, tabulky slideru podle vašeho rozhodnutí a historii návštěv starší než 12 měsíců sepsat jako úkol pro vývojáře. Košíků s objednávkami se nedotýkám.
Vy: Začni protokolem. Ukaž mi přesně, co smažeš.
Váš chat: Náhled první dávky:
Uložení vyžaduje přepínač Servis. Modul dnes udělal zálohu databáze, takže ho můžete zapnout.
stará verze: záznamy protokolu před 2026-07-13
nová verze: záznamy od 2026-07-13 zůstávají
Čísla a data v příkladu jsou vymyšlená. Chat uvede skutečná pro váš e-shop.
Co každý krok potřebuje:
- Měření a plánování je čtení databáze, dostupné v TellMyShop Pro hned.
- Mazání řádků spadá pod přepínač Servis, který dává plný technický přístup k databázi a souborům. Platí 3 hodiny a zapnete ho jen s úspěšnou zálohou databáze ze stejného dne.
- Každá dávka je samostatná změna s náhledem a vaším schválením. Jde do historie změn.
Pár upřímných výhrad. Tabulky s IP a e-mailovými adresami, jako historie návštěv nebo protokol e-mailů, modul považuje za data zákazníků. Ve výchozím stavu chat jejich obsah nevidí. Můžete dočasně zapnout vyšší úroveň přístupu k datům zákazníků s uvedeným účelem, nebo tuto část předat vývojáři. Chat pro něj pak připraví popis úkolu. Velký úklid zabere čas a hodinové limity práce nastavujete v panelu modulu. Před větší prací chat zkontroluje, zda se vejde, a navrhne etapy. Optimalizaci tabulek po smazání a zvětšení databáze u hostingu necháváme na hostingu nebo vývojáři.
Při čištění databáze se vyplatí projít i samotné moduly. Pomůže návod k nepoužívaným modulům PrestaShopu. Ukázkové požadavky najdete v případech použití osiřelé řádky a pozůstatky v databázi a vlastní přehled z dat e-shopu.
Jak často databázi e-shopu čistit?
Stačí jednou za čtvrtletí nebo půl roku zkontrolovat velikost tabulek a porovnat ji s předchozím měřením. Pokud jedna tabulka rychle roste, vyplatí se zjistit, který modul do ní zapisuje a zda ho potřebujete. Někdy je vypnutí statistik, které nikdo nepoužívá, lepší řešení než pravidelné čištění.
Stav e-shopu si zkontrolujete v TellMyShop Free. Čtení databáze a úklid s náhledem fungují v TellMyShop Pro; ceny najdete v ceníku.
Otázky a odpovědi
Zpomaluje velká databáze e-shop na PrestaShopu?
Může zpomalit administraci, statistiky a zálohy, méně často samotný e-shop. Nejvíc obvykle rostou tabulky s historií návštěv, které e-shop k prodeji nepotřebuje. Než cokoli smažete, zkontrolujte, které tabulky jsou opravdu velké.
Můžu vyčistit tabulku ps_connections?
Obvykle ano, protože obsahuje historii návštěv pro moduly statistik. Po smazání přijdete o tyto statistiky za smazané období. Bezpečnější je mazat řádky starší než zvolené datum než vyprázdnit celou tabulku, a vždy se zálohou databáze.
Je mazání starých košíků bezpečné?
Jen u košíků, ze kterých se nestala objednávka. Košík spojený s objednávkou je součástí historie prodeje a nesmí se ho nic dotknout. Takový úklid by měl připravit vývojář, který zná strukturu vaší databáze.
Stačí záloha databáze, kterou udělá TellMyShop?
TellMyShop Pro zálohuje celou databázi před první změnou dne a bez ní nejde zapnout přepínač Servis. Před velkým úklidem se vyplatí mít i vlastní zálohu u hostingu. Dvě nezávislé zálohy jsou při mazání dat rozumné minimum.
Ukáže TellMyShop Free, co v databázi zabírá místo?
Ne. TellMyShop Free čte jen hotové přehledy: produkty, SEO, prodej, záznamy a seznam modulů. Čtení databáze, včetně velikosti tabulek, funguje v TellMyShop Pro bez zapínání přepínačů.
PrestaShop je registrovaná ochranná známka společnosti PrestaShop SA. Claude je ochranná známka společnosti Anthropic PBC. ChatGPT a OpenAI jsou ochranné známky společnosti OpenAI. TellMyShop s těmito společnostmi není propojen.