PostgreSQL — databáze vašeho webu a e-shopu
Každý produkt, objednávka, lead i stránka, kterou na 4buildsite vytvoříte, žije v databázi PostgreSQL. Nemusíte ji spravovat vy — ale stojí za to vědět, proč jsme ji zvolili: transakční integrita pro platby, spolehlivost osvědčená téměř 30 lety a nulové licenční náklady v ceně.
Co je PostgreSQL a co všechno drží ve vašem webu
PostgreSQL je open-source relační databázový systém, nepřetržitě vyvíjený od roku 1996 — s kořeny v projektu POSTGRES na Kalifornské univerzitě v Berkeley (1986). Na 4buildsite je PostgreSQL místem, kde žijí data vašeho webu: produkty a zásoby, objednávky a platby, leady z formulářů a obsah stránek. Vy pracujete ve vizuálním editoru; PostgreSQL uchovává každou změnu v bezpečí.
Proč na tom záleží, pokud nejste programátor? Protože rozdíl mezi seriózní a křehkou databází se ukáže právě v těžkých chvílích: špičkový provoz při akci, platba odeslaná dvakrát, restart serveru. PostgreSQL je navržen tak, aby těmito okamžiky prošel bez ztráty nebo poškození dat — proto ho ve velkém měřítku používají společnosti jako Instagram a Reddit a historicky stál v základech infrastruktury Skype.
- Produkty, varianty a zásoby — kompletní katalog vašeho e-shopu
- Objednávky, platby přes Stripe a faktury — historie prodejů bez mezer
- Leady z formulářů — každá poptávka je zaručeně uložena
- Obsah stránek a šablon — vše, co upravujete ve vizuálním editoru
- Domény, nastavení a publikované verze vašeho webu
Objednávky a platby bez poškozených dat — integrita ACID
Když zákazník zadá objednávku, děje se několik věcí najednou: sníží se zásoba, vytvoří se objednávka, zaznamená se platba přes Stripe. PostgreSQL je provede jako jedinou transakci: buď proběhnou všechny, nebo žádná. Pokud platba v polovině selže, zásoba se automaticky vrátí na původní hodnotu. Toto chování se nazývá ACID (Atomicity, Consistency, Isolation, Durability) a PostgreSQL ho zaručuje u každé tabulky, bez zvláštního nastavení.
Kromě transakcí PostgreSQL vynucuje pravidla integrity přímo v databázi: řádek objednávky nemůže odkazovat na neexistující produkt, zásoba se nemůže dostat do záporu, e-mail účtu nelze zdvojit. Tato omezení (cizí klíče, check, unique) zastaví chybná data dřív, než vstoupí — ne až poté, co vám zkazí přehled prodejů.
U marketplace je integrita dvojnásob důležitá: provize a platby rozdělované přes Stripe Connect se počítají z dat objednávky. Duplicitní objednávka nebo nekonzistentní částka by znamenaly nesprávně rozdělené peníze mezi prodejce. Transakce PostgreSQL udržují tyto výpočty správné, objednávku po objednávce.
Vyhledávání v katalogu a flexibilní obsah
PostgreSQL obsahuje fulltextový vyhledávač: zákazníci hledají „běžecké boty“ a najdou odpovídající produkty, se slovníky pro stemming včetně rumunštiny. Rozšíření pg_trgm přidává toleranci k překlepům. Pro e-shop tyto schopnosti znamenají, že katalog lze dobře prohledávat bez samostatné služby typu Elasticsearch — tedy méně komponent, které mohou vypadnout, a nižší náklady na infrastrukturu.
Obsah stránek vytvořených ve vizuálním editoru nemá pevnou strukturu — hero blok, formulář a galerie mají různá pole. PostgreSQL to řeší pomocí JSONB: ukládá nativní JSON, indexovatelný pomocí indexů GIN, dotazovatelný jako jakýkoli sloupec. Získáte flexibilitu dokumentové databáze, ale zachováte relační integritu pro objednávky a platby — v jednom systému, ne ve dvou.
- tsvector + slovníky pro stemming (včetně rumunštiny) — relevantní vyhledávání v katalogu
- pg_trgm — zákazníci najdou produkt, i když se překlepnou o písmeno
- JSONB s indexy GIN — flexibilní bloky stránek zůstávají dotazovatelné
Spolehlivost: záloha, obnova a žádná překvapení
PostgreSQL zapisuje každou změnu nejprve do žurnálu (WAL — Write-Ahead Log) a teprve poté do vlastních dat. Pokud se server náhle zastaví, po restartu se databáze rekonstruuje ze žurnálu, bez poškozených dat. Na stejném mechanismu PostgreSQL staví i obnovu k určitému okamžiku (PITR) — standardní schopnost databázového jádra u instalací, které archivují žurnál WAL. Na 4buildsite jsou data na perzistentních svazcích oddělených od aplikace, takže restart nebo aktualizace platformy se jich nedotkne.
PostgreSQL podporuje také streamingovou replikaci — synchronizovanou kopii databáze připravenou v případě potřeby převzít provoz.
Škálování a náklady — růst bez licenčních poplatků
Když e-shop roste, PostgreSQL roste s ním: indexy udržují rychlé dotazy v katalozích s stovkami tisíc produktů, partitioning rozděluje historii objednávek podle období a čtecí repliky přebírají provoz reportů. Instagram a Reddit škálovaly na PostgreSQL na stovky milionů uživatelů — online obchod narazí na limity této technologie mnohem později, než si myslí.
PostgreSQL má svobodnou licenci (PostgreSQL License, typu BSD) — bez licenčních nákladů a bez komerčního vlastníka, který by mohl přes noc změnit pravidla. Komerční databáze se obvykle licencují podle procesorového jádra a náklady se nevyhnutelně promítnou do ceny, kterou platí zákazník. Na 4buildsite je databáze zahrnuta v plánu spolu s hostingem a SSL — bez jakéhokoli samostatného poplatku.
Výhody a omezení
Výhody
- Plné transakce ACID — objednávky a platby zůstávají konzistentní i při chybách nebo výpadcích serveru.
- Spolehlivost osvědčená od roku 1996, v produkci u Instagramu, Redditu a historicky i Skype.
- Nativní JSONB — flexibilní obsah stránek bez obětování relační integrity.
- Fulltextové vyhledávání v ceně, se stemmingem pro rumunštinu — vyhledávání v katalogu bez samostatné služby.
- Svobodná licence — žádné licenční náklady skryté v ceně vašeho plánu.
- Žurnál WAL — při náhlém zastavení serveru se databáze po restartu rekonstruuje bez poškozených dat.
Omezení
- Pokročilá správa (tuning, replikace, failover) vyžaduje zkušenosti — na 4buildsite ji děláme my, ale self-hosted je náročná.
- Zápisy směřují na jediný primární uzel — distribuce na více uzlů (sharding) není nativní a vyžaduje další nástroje.
- Každé spojení spotřebuje poměrně hodně paměti — při velkém počtu spojení je potřeba pooling (PgBouncer).
- Fulltextové vyhledávání je dobré, ale u pokročilé relevance a našeptávání zaostává za specializovanými vyhledávači.
Stručný verdikt
PostgreSQL je standardní volbou pro weby, e-shopy, marketplace a SaaS platformy, kde se objednávky, platby a leady nesmějí ztratit. Jednoduchý blog by vystačil i s méně — ale svobodná licence znamená, že na 4buildsite tuto úroveň jistoty získáte tak jako tak, bez dalších nákladů.
Tabulka specifikací
| Schopnost | Limit / práh | Typické použití | |
|---|---|---|---|
| Transakční integrita | Plné ACID + MVCC, u každé tabulky | Velmi dlouhé transakce drží zablokované prostředky | Objednávky, platby, zásoby |
| JSONB | Nativní JSON, indexovatelný pomocí GIN | Velmi složité dotazy nad JSON jsou pomalejší než nad klasickými sloupci | Obsah stránek, nastavení, atributy produktů |
| Fulltextové vyhledávání | tsvector + pg_trgm, vícejazyčné (včetně rumunštiny) | Relevance pod úrovní specializovaných vyhledávačů | Vyhledávání v katalogu e-shopu |
| Záloha a replikace | WAL, PITR, streamingová replikace | Automatický failover vyžaduje externí nástroje (např. Patroni) | Obnova po incidentech, vysoká dostupnost |
| Škálování | Čtecí repliky, partitioning tabulek | Zápisy zůstávají na primárním uzlu | Velké katalogy a historie objednávek |
| Náklady | Open source, svobodná licence | Skutečné náklady tvoří infrastruktura a správa | Zahrnuto v plánech 4buildsite |
PostgreSQL vs. MySQL vs. MongoDB
| Kritérium | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| Integrita ACID | Úplná, u každé tabulky, ve výchozím stavu | Úplná jen s úložištěm InnoDB | Transakce přes více dokumentů až od verze 4.0, s omezeními |
| Datové typy a JSON | Indexovatelný JSONB + bohaté typy (array, range) | Platný JSON, nepřímá indexace (generované sloupce) | Nativní dokumenty BSON, bez vynuceného schématu |
| Fulltextové vyhledávání | V ceně: tsvector, pg_trgm, vícejazyčný stemming | Základní (InnoDB FTS) | Základní; pokročilá varianta (Atlas Search) jen v komerčním cloudu |
| Licence / náklady | PostgreSQL License — svobodná, bez komerčního vlastníka | GPL, vlastní ho Oracle (komerční edice) | SSPL — už to není klasická open-source licence |
| Ekosystém | Silná rozšíření (PostGIS, pgvector), podpora ve všech ORM | Všudypřítomná v klasickém PHP/WordPress hostingu | Silná v Node.js, jinde užší |
| Vhodnost pro e-commerce | Výborná — objednávky, zásoby a platby zaručeně konzistentní | Dobrá — historický standard (Magento, WooCommerce) | Pro flexibilní katalogy; konzistence objednávek vyžaduje další úsilí |
Často kladené otázky
Ovlivňuje PostgreSQL rychlost webu?
Ne negativně. Veřejné stránky se servírují z Next.js s cache a indexované dotazy PostgreSQL odpovídají v milisekundách. Při velikosti typického webu nebo e-shopu databáze obvykle není úzkým hrdlem — pro vnímanou rychlost je mnohem důležitější frontend a obrázky.
Proč ne WordPress s MySQL, jako všichni?
WordPress je CMS v PHP s motivy a pluginy, které je třeba neustále udržovat a aktualizovat. 4buildsite generuje weby v Next.js s PostgreSQL: bez pluginů k záplatování a s menším počtem bezpečnostních děr. MySQL není špatná volba — ale PostgreSQL přidává indexovatelný JSONB, lepší fulltextové vyhledávání a přísnější integritu, ve stejné svobodné licenci.
Co se stane s mými daty, když server vypadne?
PostgreSQL zapisuje každou změnu nejprve do žurnálu WAL, takže se po restartu databáze rekonstruuje bez poškozených dat — náhlý výpadek serveru vaše objednávky nepoškodí. Data navíc leží na perzistentních svazcích oddělených od aplikace, takže restart nebo aktualizace platformy se jich nedotkne.
Mohu si data exportovat, když z 4buildsite odejdu?
Ano. Vaše data leží v PostgreSQL, standardním formátu v oboru — produkty, objednávky a zákazníky lze exportovat v běžných formátech (CSV, SQL). Neexistuje žádný proprietární formát, který by vás na platformě držel.
Zvládne PostgreSQL, když můj e-shop poroste?
Ano, s velkou rezervou. Instagram a Reddit škálovaly na PostgreSQL na stovky milionů uživatelů pomocí indexů, partitioningu a čtecích replik — stejné techniky jsou k dispozici i na 4buildsite. Online obchod narazí na limity PostgreSQL mnohem později než na limity vlastní logistiky.
Kolik mě stojí licence PostgreSQL?
Nic. PostgreSQL má svobodnou licenci (PostgreSQL License, typu BSD), bez poplatků za server nebo za jádro. Na 4buildsite je databáze zahrnuta ve vašem plánu spolu s hostingem a SSL — za samotnou databázi neplatíte nic navíc.