Technológiák

← Főoldal
Adatok és tárolás

PostgreSQL — a weboldalad és a webáruházad adatbázisa

Minden termék, rendelés, érdeklődő és oldal, amit a 4buildsite-on létrehozol, egy PostgreSQL adatbázisban él. Neked nem kell üzemeltetned — de érdemes tudni, miért erre esett a választásunk: tranzakciós integritás a fizetésekhez, közel harminc éve bizonyított megbízhatóság és nulla licencköltség az áradban.

Mi a PostgreSQL, és mit őriz a weboldaladból

A PostgreSQL nyílt forráskódú relációs adatbázisrendszer, amelyet 1996 óta folyamatosan fejlesztenek — gyökerei a Berkeley Egyetem POSTGRES projektjéig (1986) nyúlnak vissza. A 4buildsite-on a PostgreSQL az a hely, ahol a weboldalad adatai élnek: a termékek és a készlet, a rendelések és a fizetések, az űrlapokból érkező érdeklődők és az oldalak tartalma. Te a vizuális szerkesztőben dolgozol; a PostgreSQL pedig minden módosítást biztonságban megőriz.

Miért számít ez neked, ha nem vagy fejlesztő? Mert egy komoly és egy törékeny adatbázis közötti különbség pont a nehéz pillanatokban derül ki: egy akció alatti forgalmi csúcson, egy kétszer lefutó fizetésnél, egy szerverújraindításkor. A PostgreSQL úgy készült, hogy ezeket a helyzeteket adatvesztés és adatsérülés nélkül vészelje át — ezért használja nagy méretekben az Instagram és a Reddit is, és történetileg ez adta a Skype infrastruktúrájának alapját.

  • Termékek, változatok és készlet — a webáruházad teljes katalógusa
  • Rendelések, Stripe-fizetések és számlák — hiánytalan értékesítési előzmények
  • Űrlapokból érkező érdeklődők — minden ajánlatkérés garantáltan elmentve
  • Az oldalak és sablonok tartalma — mindaz, amit a vizuális szerkesztőben szerkesztesz
  • A weboldalad domainjei, beállításai és publikált verziói

Rendelések és fizetések sérült adatok nélkül — ACID-integritás

Amikor egy vásárló leadja a rendelést, több dolog történik egyszerre: csökken a készlet, létrejön a rendelés, rögzül a Stripe-fizetés. A PostgreSQL mindezt egyetlen tranzakcióként hajtja végre: vagy minden megtörténik, vagy semmi. Ha a fizetés félúton elakad, a készlet automatikusan visszaáll a kiindulási értékre. Ezt a viselkedést hívják ACID-nek (Atomicity, Consistency, Isolation, Durability), és a PostgreSQL minden táblán garantálja, külön beállítás nélkül.

A tranzakciókon túl a PostgreSQL magában az adatbázisban érvényesíti az integritási szabályokat: egy rendeléstétel nem hivatkozhat nem létező termékre, a készlet nem mehet negatívba, egy fiók e-mail-címe nem duplikálódhat. Ezek a megszorítások (idegen kulcs, check, unique) még a bekerülés előtt megállítják a hibás adatot — nem azután, hogy már tönkretette az értékesítési kimutatásodat.

A piactereknél az integritás duplán számít: a jutalékok és a Stripe Connecten keresztül megosztott kifizetések a rendelés adataiból számolódnak. Egy duplán rögzült rendelés vagy egy inkonzisztens összeg azt jelentené, hogy rosszul oszlik el a pénz az eladók között. A PostgreSQL tranzakciói rendelésről rendelésre pontosan tartják ezeket a számításokat.

Gyors keresés a katalógusban és rugalmas tartalom

A PostgreSQL teljes szövegű keresőmotort is hoz magával: a vásárlók rákeresnek a „futócipő” szóra, és megtalálják a hozzá illő termékeket, szótövező szótárak segítségével, amelyek között a magyar is ott van. A pg_trgm kiterjesztés ehhez elgépelés-tűrést ad. Egy webáruház számára ez azt jelenti, hogy a katalógus külön Elasticsearch-szerű szolgáltatás nélkül is jól kereshető — vagyis kevesebb komponens tud elromlani, és alacsonyabb az infrastruktúra költsége.

A vizuális szerkesztőben összerakott oldaltartalomnak nincs kötött szerkezete — egy hero blokk, egy űrlap és egy galéria más-más mezőkből áll. Ezt a PostgreSQL a JSONB-vel oldja meg: natívan tárolja a JSON-t, GIN-indexszel indexelhető, és úgy kérdezhető le, mint bármelyik oszlop. Megkapod egy dokumentumadatbázis rugalmasságát, miközben a rendeléseknél és a fizetéseknél megmarad a relációs integritás — egyetlen rendszerben, nem kettőben.

  • tsvector és szótövező szótárak (magyarral együtt) — releváns találatok a katalógusban
  • pg_trgm — a vásárló akkor is megtalálja a terméket, ha elüt egy betűt
  • JSONB GIN-indexszel — a rugalmas oldalblokkok indexelten is lekérdezhetők

Megbízhatóság: mentés, helyreállítás és nulla meglepetés

A PostgreSQL minden módosítást először egy naplóba ír (WAL — Write-Ahead Log), és csak utána magukba az adatokba. Ha a szerver váratlanul leáll, az adatbázis újraindításkor a naplóból épül vissza, sérült adatok nélkül. Ugyanezen a mechanizmuson alapul az időpontra visszaállítás (PITR) is — ez a motor alapképessége azoknál a telepítéseknél, amelyek archiválják a WAL-naplót. A 4buildsite-on az adatok az alkalmazástól elkülönített, tartós köteteken vannak, így egy újraindítás vagy egy platformfrissítés nem nyúl hozzájuk.

A PostgreSQL streaming replikációt is támogat — vagyis egy szinkronban tartott másolatot az adatbázisról, amely szükség esetén átveheti a forgalmat. A weboldalad szempontjából az adatbázis megbízhatósága a keresőmotorokra is hat: egy folyamatosan válaszoló oldalt folyamatosan be is jár és indexel a kereső, az ismétlődő 5xx hibák pedig rontják a Google-helyezéseket.

Skálázás és költségek — növekedj licencszámlák nélkül

Ahogy a webáruházad nő, a PostgreSQL vele nő: az indexek százezres tételszámú katalógusnál is gyorsan tartják a lekérdezéseket, a particionálás időszakonként bontja szét a rendeléstörténetet, az olvasási replikák pedig átveszik a kimutatások forgalmát. Az Instagram és a Reddit több százmillió felhasználóig skálázott PostgreSQL-en — egy webáruház jóval később ér el ennek a technológiának a határáig, mint gondolnád.

A PostgreSQL szabad licenc alatt áll (PostgreSQL License, BSD jellegű) — nincs licencköltség, és nincs mögötte kereskedelmi tulajdonos, aki egyik napról a másikra megváltoztathatja a szabályokat. A kereskedelmi adatbázisokat általában processzormagonként licencelik, és ez a költség előbb-utóbb a vásárló árában köt ki. A 4buildsite-on az adatbázis a csomag része, a tárhellyel és az SSL-lel együtt — minden külön díj nélkül.

Előnyök és korlátok

Előnyök

  • Teljes ACID-tranzakciók — a rendelések és a fizetések hiba vagy szerverleállás esetén is konzisztensek maradnak.
  • 1996 óta bizonyított megbízhatóság, éles használatban az Instagramnál, a Redditnél és történetileg a Skype-nál.
  • Natív JSONB — rugalmas oldaltartalom a relációs integritás feláldozása nélkül.
  • Beépített teljes szövegű keresés magyar szótövezéssel — katalóguskeresés külön szolgáltatás nélkül.
  • Szabad licenc — semmilyen rejtett licencköltség nincs a csomagod árában.
  • WAL-napló — hirtelen szerverleállás után az adatbázis újraindításkor sérült adatok nélkül épül vissza.

Korlátok

  • A haladó üzemeltetés (hangolás, replikáció, feladatátvétel) tapasztalatot kíván — a 4buildsite-on ezt mi visszük, saját üzemeltetésben viszont igényes feladat.
  • Az írások egyetlen elsődleges csomóponton futnak — a több csomópontra osztás (sharding) nem natív, külön eszközöket igényel.
  • Minden kapcsolat viszonylag sok memóriát fogyaszt — sok kapcsolatnál kapcsolatkészletezés (PgBouncer) kell.
  • A teljes szövegű keresés jó, de haladó relevanciában és keresési javaslatokban elmarad a célmotorok mögött.

Rövid értékelés

A PostgreSQL az alapértelmezett választás olyan weboldalakhoz, webáruházakhoz, piacterekhez és SaaS-platformokhoz, ahol a rendelések, a fizetések és az érdeklődők nem veszhetnek el. Egy egyszerű blog kevesebbel is beérné — a szabad licencnek köszönhetően viszont a 4buildsite-on ezt a biztonsági szintet amúgy is felár nélkül kapod meg.

Specifikációs táblázat

KépességKorlát / küszöbJellemző felhasználás
Tranzakciós integritásTeljes ACID és MVCC, minden táblánA nagyon hosszú tranzakciók lekötve tartják az erőforrásokatRendelések, fizetések, készlet
JSONBNatív JSON, GIN-nel indexelhetőA nagyon összetett JSON-lekérdezések lassabbak, mint a klasszikus oszlopokonOldaltartalom, beállítások, terméktulajdonságok
Teljes szövegű kereséstsvector és pg_trgm, többnyelvű (magyarral együtt)A relevancia elmarad a célzott keresőmotorokétólKeresés a webáruház katalógusában
Mentés és replikációWAL, PITR, streaming replikációAz automatikus feladatátvétel külső eszközöket kíván (pl. Patroni)Helyreállítás incidens után, magas rendelkezésre állás
SkálázásOlvasási replikák, táblaparticionálásAz írások az elsődleges csomóponton maradnakNagy katalógusok és rendeléstörténetek
KöltségNyílt forráskódú, szabad licencA valódi költség az infrastruktúra és az üzemeltetésA 4buildsite csomagjainak része

PostgreSQL, MySQL és MongoDB összehasonlítása

SzempontPostgreSQLMySQLMongoDB
ACID-integritásTeljes, minden táblán, alapértelmezettenTeljes, de csak az InnoDB motorralDokumentumok közötti tranzakciók csak a 4.0-tól, korlátozásokkal
Adattípusok és JSONIndexelhető JSONB és gazdag típusok (tömb, tartomány)Érvényes JSON, közvetett indexelés (generált oszlopok)Natív BSON-dokumentumok, kötelező séma nélkül
Teljes szövegű keresésBeépítve: tsvector, pg_trgm, többnyelvű szótövezésAlapszintű (InnoDB FTS)Alapszintű; a haladó változat (Atlas Search) csak a kereskedelmi felhőben
Licenc és költségPostgreSQL License — szabad, kereskedelmi tulajdonos nélkülGPL, az Oracle tulajdonában (kereskedelmi kiadásokkal)SSPL — már nem klasszikus nyílt forráskódú licenc
ÖkoszisztémaErős kiterjesztések (PostGIS, pgvector), támogatás minden ORM-benMindenütt jelen van a klasszikus PHP-s és WordPress-tárhelyekenErős a Node.js körül, máshol szűkebb
Alkalmasság e-kereskedelemreKiváló — a rendelések, a készlet és a fizetések garantáltan konzisztensekJó — a történelmi szabvány (Magento, WooCommerce)Rugalmas katalógusokhoz; a rendelések konzisztenciája többletmunkát kíván

Gyakori kérdések

Lassítja a PostgreSQL a weboldalamat?

Rossz értelemben nem. A nyilvános oldalakat a Next.js gyorsítótárból szolgálja ki, az indexelt PostgreSQL-lekérdezések pedig az indexekre támaszkodnak. Egy szokásos weboldal vagy webáruház méreténél az adatbázis ritkán a szűk keresztmetszet — az érzékelt sebességben a frontend és a képek sokkal többet nyomnak a latban.

Miért nem WordPress MySQL-lel, mint mindenki más?

A WordPress egy PHP-alapú CMS sablonokkal és bővítményekkel, amelyeket folyamatosan karban kell tartani és frissíteni kell. A 4buildsite Next.js-oldalakat generál PostgreSQL-lel: nincsenek foltozandó bővítmények, és kevesebb a biztonsági rés. A MySQL sem rossz választás — a PostgreSQL viszont ad mellé indexelhető JSONB-t, jobb teljes szövegű keresést és szigorúbb integritást, ugyanazzal a szabad licenccel.

Mi történik az adataimmal, ha leáll a szerver?

A PostgreSQL minden módosítást először a WAL-naplóba ír, így az adatbázis újraindításkor sérült adatok nélkül épül vissza — egy hirtelen szerverleállás nem teszi tönkre a rendeléseidet. Ráadásul az adatok az alkalmazástól elkülönített, tartós köteteken vannak, így egy újraindítás vagy egy platformfrissítés nem nyúl hozzájuk.

Exportálhatom az adataimat, ha elhagyom a 4buildsite-ot?

Igen. Az adataid PostgreSQL-ben vannak, ami iparági szabvány — a termékek, a rendelések és a vevőadatok bevett formátumokba (CSV, SQL) exportálhatók. Nincs olyan zárt formátum, amely a platformhoz kötne.

Bírja a PostgreSQL, ha nő a webáruházam?

Igen, nagyon nagy tartalékkal. Az Instagram és a Reddit több százmillió felhasználóig skálázott PostgreSQL-en, indexekkel, particionálással és olvasási replikákkal — ugyanezek a technikák a 4buildsite-on is elérhetők. Egy webáruház jóval előbb ütközik a saját logisztikájának korlátaiba, mint a PostgreSQL-éibe.

Mennyibe kerül nekem a PostgreSQL licence?

Semmibe. A PostgreSQL szabad licenc alatt áll (PostgreSQL License, BSD jellegű), szerverenkénti vagy magonkénti díj nélkül. A 4buildsite-on az adatbázis a csomagod része, a tárhellyel és az SSL-lel együtt — külön nem fizetsz érte semmit.

4b2b.net
Üzleti ökoszisztéma
4conta.ro
Könyvelés
4invoices.net
Számlázó alkalmazás
4expenses.net
Költségkezelés
4notify.net
Értesítések
4hosting.net
Tárhely
4database.net
Adatbázisok
4buildsite.net
Weboldal-készítő
4myapp.net
Alkalmazás-készítő
4avatars.net
MI-avatárok
4chaty.net
MI-chatbot
4webagency.net
Webügynökségi szoftver
4softedu.net
Oktatási weboldalak
4softcrm.net
CRM platform
4softerp.net
ERP rendszer
4softhr.net
HR-menedzsment
4mystaff.net
Munkavállalói portál
4myprojects.net
Projektmenedzser
4mycontracts.net
Szerződések
4docs.net
Dokumentumkezelés
4appointments.net
Időpontfoglalás
4marketingonline.net
Marketing
4insurance.net
Biztosítás
4property.net
Ingatlanok
4lawyers.net
Jogi szoftver
4mygarage.net
Autószerviz
4driving.net
Autósiskolák
4fleet.net
Flottakezelés
4myevents.net
Események
4therapy.net
Terápia
4clinics.net
Klinikák
4dental.net
Fogorvosi rendelők
4restaurants.net
Éttermek
4beautify.net
Szépségszalon
4gym.net
Edzőtermek
4guards.net
Őrző-védő cégek
4softvet.net
Állatorvosi rendelők
4softauto.net
Szoftver autóipari vállalkozásoknak
4construct.net
Építőipari cégek
4marketplace.net
Piactér
4shopy.net
Webáruház
4pricing.net
Árösszehasonlítás
4salefood.net
Ételszállítás
4rentify.net
Bérlés
4transports.net
Szállítás
4agencytravel.net
Utazási iroda
4hotel.net
Szállodakezelés
4ong.net
NGO-kezeles