PostgreSQL — baza danych Twojej strony i sklepu internetowego
Każdy produkt, zamówienie, kontakt handlowy i strona, które tworzysz na 4buildsite, żyją w bazie danych PostgreSQL. Nie musisz jej administrować, ale warto wiedzieć, dlaczego ją wybraliśmy: integralność transakcyjna płatności, niezawodność potwierdzona od blisko 30 lat i zerowe koszty licencji w Twojej cenie.
Czym jest PostgreSQL i co przechowuje z Twojej strony
PostgreSQL to relacyjny system baz danych o otwartym kodzie, rozwijany nieprzerwanie od 1996 roku, z korzeniami w projekcie POSTGRES z Uniwersytetu Berkeley (1986). Na 4buildsite PostgreSQL jest miejscem, w którym żyją dane Twojej strony: produkty i stany magazynowe, zamówienia i płatności, kontakty z formularzy oraz treści podstron. Ty pracujesz w edytorze wizualnym, a PostgreSQL bezpiecznie przechowuje każdą zmianę.
Dlaczego to ważne, jeśli nie jesteś programistą? Ponieważ różnica między solidną a kruchą bazą danych ujawnia się właśnie w trudnych momentach: przy skoku ruchu w czasie promocji, przy płatności ponowionej dwa razy, przy restarcie serwera. PostgreSQL zaprojektowano tak, aby przechodził przez takie sytuacje bez utraty i uszkodzenia danych — dlatego na dużą skalę korzystają z niego firmy takie jak Instagram i Reddit, a historycznie stanowił podstawę infrastruktury Skype'a.
- Produkty, warianty i stany magazynowe — pełny katalog Twojego sklepu
- Zamówienia, płatności Stripe i faktury — historia sprzedaży bez luk
- Kontakty z formularzy — każde zapytanie ofertowe zapisane z gwarancją
- Treści stron i szablonów — wszystko, co edytujesz w edytorze wizualnym
- Domeny, ustawienia i opublikowane wersje Twojej strony
Zamówienia i płatności bez uszkodzonych danych — integralność ACID
Gdy klient składa zamówienie, dzieje się kilka rzeczy naraz: spada stan magazynowy, powstaje zamówienie, rejestrowana jest płatność Stripe. PostgreSQL wykonuje to wszystko jako jedną transakcję: albo zdarzy się wszystko, albo nic. Jeśli płatność nie powiedzie się w połowie, stan magazynowy automatycznie wraca do wartości wyjściowej. To zachowanie nosi nazwę ACID (atomowość, spójność, izolacja, trwałość) i PostgreSQL gwarantuje je na każdej tabeli, bez specjalnej konfiguracji.
Poza transakcjami PostgreSQL egzekwuje reguły integralności wprost w bazie danych: pozycja zamówienia nie może wskazywać na nieistniejący produkt, stan magazynowy nie może zejść poniżej zera, adres e-mail konta nie może się zdublować. Te ograniczenia (klucze obce, check, unique) zatrzymują błędne dane, zanim trafią do bazy — a nie dopiero wtedy, gdy zepsują raport sprzedaży.
W przypadku marketplace'ów integralność liczy się podwójnie: prowizje i podzielone wypłaty przez Stripe Connect wylicza się z danych zamówienia. Zdublowane zamówienie albo niespójna kwota oznaczałyby pieniądze źle podzielone między sprzedawców. Transakcje PostgreSQL utrzymują te wyliczenia w porządku, zamówienie po zamówieniu.
Szybkie wyszukiwanie w katalogu i elastyczne treści
PostgreSQL zawiera silnik wyszukiwania pełnotekstowego: klienci wpisują „buty do biegania” i znajdują właściwe produkty, przy czym dostępne są słowniki tematów wyrazowych między innymi dla języka polskiego. Rozszerzenie pg_trgm dodaje odporność na literówki. Dla sklepu oznacza to, że katalog da się dobrze przeszukiwać bez osobnej usługi w rodzaju Elasticsearcha — czyli mniej elementów, które mogą zawieść, i niższe koszty infrastruktury.
Treść stron budowanych w edytorze wizualnym nie ma sztywnej struktury — blok hero, formularz i galeria mają różne pola. PostgreSQL rozwiązuje to za pomocą JSONB: przechowuje JSON natywnie, z możliwością indeksowania indeksami GIN i odpytywania jak każdej innej kolumny. Zyskujesz elastyczność bazy dokumentowej, zachowując integralność relacyjną zamówień i płatności — w jednym systemie, a nie w dwóch.
- tsvector i słowniki tematów wyrazowych (z językiem polskim) — trafne wyszukiwanie w katalogu
- pg_trgm — klienci znajdą produkt, nawet jeśli pomylą literę
- JSONB z indeksami GIN — elastyczne bloki stron pozostają łatwe do odpytania
Niezawodność: kopie zapasowe, odtwarzanie i zero niespodzianek
PostgreSQL zapisuje każdą zmianę najpierw w dzienniku (WAL — Write-Ahead Log), a dopiero potem w samych danych. Jeśli serwer nagle się zatrzyma, przy ponownym uruchomieniu baza odtwarza się z dziennika, bez uszkodzonych danych. Na tym samym mechanizmie PostgreSQL opiera odtwarzanie do wybranego momentu w czasie (PITR) — standardową funkcję silnika w instalacjach archiwizujących dziennik WAL. Na 4buildsite dane leżą na trwałych wolumenach, oddzielonych od aplikacji, więc restart czy aktualizacja platformy ich nie narusza.
PostgreSQL obsługuje także replikację strumieniową — zsynchronizowaną kopię bazy, gotową w razie potrzeby przejąć ruch. Dla Twojej strony niezawodność bazy danych przekłada się wprost na SEO i GEO: witryna, która odpowiada stabilnie, jest stabilnie indeksowana, a powtarzające się błędy 5xx obniżają pozycje w Google i utrudniają systemom AI odczytywanie treści.
Skalowanie i koszty — rośnij bez faktur licencyjnych
Gdy sklep rośnie, PostgreSQL rośnie razem z nim: indeksy utrzymują szybkie zapytania przy katalogach liczących setki tysięcy produktów, partycjonowanie dzieli historię zamówień na okresy, a repliki odczytu przejmują ruch raportowy. Instagram i Reddit wyskalowały PostgreSQL do setek milionów użytkowników — sklep internetowy dociera do granic tej technologii znacznie później, niż mu się wydaje.
PostgreSQL ma wolną licencję (PostgreSQL License, typu BSD) — bez kosztów licencyjnych i bez komercyjnego właściciela, który mógłby zmienić reguły z dnia na dzień. Komercyjne bazy danych licencjonuje się z reguły od rdzenia procesora, a ten koszt nieuchronnie trafia do ceny płaconej przez klienta. Na 4buildsite baza danych jest wliczona w plan, obok hostingu i certyfikatu SSL — bez żadnej osobnej opłaty.
Zalety i ograniczenia
Zalety
- Pełne transakcje ACID — zamówienia i płatności pozostają spójne nawet przy błędach czy awarii serwera.
- Niezawodność potwierdzona od 1996 roku, na produkcji w Instagramie, Reddicie i historycznie w Skypie.
- Natywny JSONB — elastyczne treści stron bez rezygnacji z integralności relacyjnej.
- Wbudowane wyszukiwanie pełnotekstowe ze słownikiem dla polszczyzny — przeszukiwanie katalogu bez osobnej usługi.
- Wolna licencja — żadnych kosztów licencji ukrytych w cenie Twojego planu.
- Dziennik WAL — po nagłym zatrzymaniu serwera baza odtwarza się przy starcie bez uszkodzonych danych.
Ograniczenia
- Zaawansowana administracja (strojenie, replikacja, przełączanie awaryjne) wymaga doświadczenia — na 4buildsite robimy to my, ale we własnym hostingu bywa wymagająca.
- Zapisy trafiają do jednego węzła głównego — rozproszenie ich na wiele węzłów (sharding) nie jest natywne i wymaga dodatkowych narzędzi.
- Każde połączenie zużywa stosunkowo dużo pamięci — przy wielu połączeniach potrzebny jest pooling (PgBouncer).
- Wyszukiwanie pełnotekstowe jest dobre, ale ustępuje wyspecjalizowanym silnikom w zaawansowanej trafności i podpowiedziach.
Krótki werdykt
PostgreSQL to standardowy wybór dla stron, sklepów internetowych i marketplace'ów, w których zamówienia, płatności i kontakty nie mogą zaginąć. Prostemu blogowi wystarczyłoby mniej, ale dzięki wolnej licencji na 4buildsite i tak otrzymujesz ten poziom bezpieczeństwa bez dopłaty.
Tabela specyfikacji
| Możliwość | Limit / próg | Typowe zastosowanie | |
|---|---|---|---|
| Integralność transakcyjna | Pełne ACID i MVCC, na każdej tabeli | Bardzo długie transakcje blokują zasoby | Zamówienia, płatności, stany magazynowe |
| JSONB | Natywny JSON, indeksowalny przez GIN | Bardzo złożone zapytania po JSON są wolniejsze niż po klasycznych kolumnach | Treści stron, ustawienia, atrybuty produktów |
| Wyszukiwanie pełnotekstowe | tsvector i pg_trgm, wielojęzyczne (z polskim) | Trafność niższa niż w wyspecjalizowanych silnikach wyszukiwania | Wyszukiwanie w katalogu sklepu |
| Kopie zapasowe i replikacja | WAL, PITR, replikacja strumieniowa | Automatyczne przełączanie awaryjne wymaga zewnętrznych narzędzi (np. Patroni) | Odtwarzanie po awarii, wysoka dostępność |
| Skalowanie | Repliki odczytu, partycjonowanie tabel | Zapisy pozostają na węźle głównym | Duże katalogi i długie historie zamówień |
| Koszt | Otwarty kod, wolna licencja | Realnym kosztem są infrastruktura i administracja | Wliczony w plany 4buildsite |
PostgreSQL a MySQL i MongoDB
| Kryterium | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| Integralność ACID | Pełna, na każdej tabeli, domyślnie | Pełna wyłącznie z silnikiem InnoDB | Transakcje obejmujące wiele dokumentów dopiero od wersji 4.0, z ograniczeniami |
| Typy danych i JSON | Indeksowalny JSONB i bogate typy (tablice, przedziały) | Poprawny JSON, indeksowanie pośrednie (kolumny generowane) | Natywne dokumenty BSON, bez narzuconego schematu |
| Wyszukiwanie pełnotekstowe | W standardzie: tsvector, pg_trgm, wielojęzyczne tematy wyrazowe | Podstawowe (InnoDB FTS) | Podstawowe; wariant zaawansowany (Atlas Search) tylko w komercyjnej chmurze |
| Licencja i koszt | PostgreSQL License — wolna, bez komercyjnego właściciela | GPL, własność Oracle'a (edycje komercyjne) | SSPL — to już nie jest klasyczna licencja otwartego kodu |
| Ekosystem | Mocne rozszerzenia (PostGIS, pgvector), obsługa we wszystkich ORM-ach | Wszechobecny w klasycznym hostingu PHP i WordPressa | Silny w Node.js, poza nim bardziej ograniczony |
| Dopasowanie do e-commerce | Znakomite — zamówienia, stany magazynowe i płatności spójne z gwarancją | Dobre — historyczny standard (Magento, WooCommerce) | Do elastycznych katalogów; spójność zamówień wymaga dodatkowej pracy |
Najczęstsze pytania
Czy PostgreSQL wpływa na szybkość mojej strony?
Nie w złym kierunku. Strony publiczne serwuje Next.js z cache'em, a zaindeksowane zapytania PostgreSQL korzystają z indeksów. Przy rozmiarach typowej strony czy sklepu baza danych zwykle nie jest wąskim gardłem — dla odczuwanej szybkości znacznie więcej znaczą frontend i obrazy.
Dlaczego nie WordPress z MySQL, tak jak wszyscy?
WordPress to CMS w PHP z motywami i wtyczkami, które trzeba stale utrzymywać i aktualizować. 4buildsite generuje strony w Next.js z PostgreSQL: bez wtyczek do łatania i z mniejszą liczbą luk bezpieczeństwa. MySQL nie jest złym wyborem, ale PostgreSQL dokłada indeksowalny JSONB, lepsze wyszukiwanie pełnotekstowe i ściślejszą integralność, przy tej samej wolnej licencji.
Co stanie się z moimi danymi, jeśli serwer padnie?
PostgreSQL zapisuje każdą zmianę najpierw w dzienniku WAL, więc przy ponownym uruchomieniu baza odtwarza się bez uszkodzonych danych — nagła awaria serwera nie zniszczy Twoich zamówień. Dodatkowo dane leżą na trwałych wolumenach, oddzielonych od aplikacji, więc restart ani aktualizacja platformy ich nie naruszają.
Czy mogę wyeksportować dane, jeśli odejdę z 4buildsite?
Tak. Twoje dane są w PostgreSQL, standardzie branżowym — produkty, zamówienia i klientów można wyeksportować do popularnych formatów (CSV, SQL). Nie ma żadnego zamkniętego formatu, który wiązałby Cię z platformą.
Czy PostgreSQL wytrzyma, gdy mój sklep urośnie?
Tak, z bardzo dużym zapasem. Instagram i Reddit wyskalowały PostgreSQL do setek milionów użytkowników, korzystając z indeksów, partycjonowania i replik odczytu — tych samych technik dostępnych na 4buildsite. Sklep internetowy napotyka granice własnej logistyki dużo wcześniej niż granice PostgreSQL.
Ile kosztuje mnie licencja PostgreSQL?
Nic. PostgreSQL ma wolną licencję (PostgreSQL License, typu BSD), bez opłat za serwer czy za rdzeń. Na 4buildsite baza danych jest wliczona w Twój plan razem z hostingiem i certyfikatem SSL — nie płacisz za nią osobno.