PostgreSQL — sivustosi ja verkkokauppasi tietokanta
Jokainen tuote, tilaus, liidi ja sivu, jonka luot 4buildsitessa, elää PostgreSQL-tietokannassa. Sinun ei tarvitse ylläpitää sitä — mutta kannattaa tietää, miksi valitsimme sen: transaktioiden eheys maksuille, lähes 30 vuoden todistettu luotettavuus ja nolla lisenssikustannusta hinnassasi.
Mikä PostgreSQL on ja mitä se säilyttää sivustollasi
PostgreSQL on avoimen lähdekoodin relaatiotietokantajärjestelmä, jota on kehitetty jatkuvasti vuodesta 1996 — sen juuret ovat Berkeleyn yliopiston POSTGRES-projektissa (1986). 4buildsitessa PostgreSQL on paikka, jossa sivustosi data elää: tuotteet ja varastosaldot, tilaukset ja maksut, lomakkeiden liidit ja sivujen sisältö. Sinä työskentelet visuaalieditorissa; PostgreSQL säilyttää jokaisen muutoksen turvassa.
Miksi sillä on merkitystä sinulle, jos et ole ohjelmoija? Koska ero vakavasti otettavan ja hauraan tietokannan välillä näkyy juuri vaikeina hetkinä: liikennepiikki kampanjan aikana, kahdesti toistettu maksu, palvelimen uudelleenkäynnistys. PostgreSQL on suunniteltu selviämään näistä hetkistä menettämättä tai vioittamatta dataa — siksi sitä käyttävät laajassa mittakaavassa Instagramin ja Redditin kaltaiset yritykset, ja historiallisesti se on ollut Skypen infrastruktuurin perustana.
- Tuotteet, variantit ja varastosaldot — verkkokauppasi koko katalogi
- Tilaukset, Stripe-maksut ja laskut — myyntihistoria ilman aukkoja
- Lomakkeiden liidit — jokainen tarjouspyyntö tallennetaan
- Sivujen ja mallipohjien sisältö — kaikki, mitä muokkaat visuaalieditorissa
- Sivustosi verkkotunnukset, asetukset ja julkaistut versiot
Tilaukset ja maksut ilman vioittunutta dataa — ACID-eheys
Kun asiakas tekee tilauksen, tapahtuu useita asioita yhtä aikaa: varastosaldo pienenee, tilaus luodaan, Stripe-maksu kirjataan. PostgreSQL suorittaa ne yhtenä transaktiona: joko kaikki tapahtuu tai ei mikään. Jos maksu epäonnistuu puolivälissä, varastosaldo palautuu automaattisesti alkuperäiseen arvoonsa. Tätä käyttäytymistä kutsutaan ACID:ksi (Atomicity, Consistency, Isolation, Durability), ja PostgreSQL takaa sen millä tahansa taululla ilman erityisiä asetuksia.
Transaktioiden lisäksi PostgreSQL pakottaa eheyssäännöt suoraan tietokantaan: tilausrivi ei voi viitata olemattomaan tuotteeseen, varastosaldo ei voi muuttua negatiiviseksi, tilin sähköpostia ei voi kahdentaa. Nämä rajoitteet (foreign key, check, unique) pysäyttävät virheellisen datan ennen kuin se pääsee sisään — eikä vasta sen jälkeen, kun se on pilannut myyntiraporttisi.
Markkinapaikoilla eheys on kaksinkertaisesti tärkeää: Stripe Connectin kautta jaetut provisiot ja maksut lasketaan tilauksen datasta. Kaksoistilaus tai epäjohdonmukainen summa tarkoittaisi väärin jaettua rahaa myyjien kesken. PostgreSQL-transaktiot pitävät nämä laskelmat oikeina, tilaus tilaukselta.
Nopea haku katalogista ja joustava sisältö
PostgreSQL sisältää kokotekstihakumoottorin: asiakkaat hakevat ”juoksukengät” ja löytävät sopivat tuotteet, stemming-sanakirjoilla, myös romanian kielelle. pg_trgm-laajennus lisää kirjoitusvirheiden sietoa. Verkkokaupalle nämä ominaisuudet tarkoittavat, että katalogista voi hakea hyvin ilman erillistä Elasticsearch-tyyppistä palvelua — siis vähemmän komponentteja, jotka voivat kaatua, ja pienemmät infrastruktuurikustannukset.
Visuaalieditorissa rakennettujen sivujen sisällöllä ei ole kiinteää rakennetta — hero-lohkolla, lomakkeella ja galleriassa on eri kentät. PostgreSQL ratkaisee tämän JSONB:llä: se tallentaa natiivia JSONia, indeksoitavissa GIN-indeksein, kyseltävissä kuten mikä tahansa sarake. Saat dokumenttitietokannan joustavuuden mutta säilytät relaatioeheyden tilauksille ja maksuille — samassa järjestelmässä, ei kahdessa.
- tsvector + stemming-sanakirjat (romania mukana) — relevantti haku katalogista
- pg_trgm — asiakkaat löytävät tuotteen, vaikka kirjoittaisivat kirjaimen väärin
- JSONB GIN-indeksein — joustavat sivulohkot pysyvät nopeasti kyseltävinä
Luotettavuus: varmuuskopiointi, palautus ja ei yllätyksiä
PostgreSQL kirjoittaa jokaisen muutoksen ensin lokiin (WAL — Write-Ahead Log) ja vasta sitten varsinaiseen dataan. Jos palvelin pysähtyy äkillisesti, uudelleenkäynnistyksessä tietokanta rakennetaan uudelleen lokista ilman vioittunutta dataa. Samaan mekanismiin PostgreSQL perustaa myös pistekohtaisen palautuksen (PITR) — moottorin vakio-ominaisuus asennuksille, jotka arkistoivat WAL-lokin. 4buildsitessa data on pysyvillä volyymeillä, erillään sovelluksesta, joten alustan uudelleenkäynnistys tai päivitys ei koske siihen.
PostgreSQL tukee myös streaming-replikointia — tietokannan synkronoitu kopio, joka on valmis ottamaan liikenteen vastaan tarvittaessa. Sivustollesi tietokannan luotettavuus näkyy siinä, että sivu vastaa jatkuvasti; toistuvat 5xx-virheet vaikeuttavat indeksointia Googlessa.
Skaalaus ja kustannukset — kasva ilman lisenssilaskuja
Kun kauppasi kasvaa, PostgreSQL kasvaa mukana: indeksit pitävät kyselyt nopeina satojentuhansien tuotteiden katalogeissa, partitiointi jakaa tilaushistorian ajanjaksoihin ja lukureplikat ottavat raporttiliikenteen. Instagram ja Reddit ovat skaalanneet PostgreSQL:llä satoihin miljooniin käyttäjiin — verkkokauppa saavuttaa tämän teknologian rajat paljon myöhemmin kuin luulet.
PostgreSQL:llä on vapaa lisenssi (PostgreSQL License, BSD-tyyppinen) — ei lisenssikustannuksia eikä kaupallista omistajaa, joka voisi muuttaa sääntöjä yhdessä yössä. Kaupalliset tietokannat lisensoidaan yleensä suorittimen ydintä kohden, ja kustannus päätyy väistämättä asiakkaan maksamaan hintaan. 4buildsitessa tietokanta sisältyy tilaukseen hostingin ja SSL:n rinnalla — ilman erillistä maksua.
Edut ja rajoitukset
Edut
- Täydet ACID-transaktiot — tilaukset ja maksut pysyvät johdonmukaisina myös virheissä tai palvelimen kaatuessa.
- Todistettu luotettavuus vuodesta 1996, tuotannossa Instagramilla, Redditillä ja historiallisesti Skypellä.
- Natiivi JSONB — joustava sivujen sisältö uhraamatta relaatioeheyttä.
- Kokotekstihaku mukana, romanian stemmingillä — haku katalogista ilman erillistä palvelua.
- Vapaa lisenssi — ei piilotettua lisenssikustannusta tilauksesi hinnassa.
- WAL-loki — palvelimen äkillisessä pysähtymisessä tietokanta rakennetaan uudelleenkäynnistyksessä ilman vioittunutta dataa.
Rajoitukset
- Edistynyt ylläpito (tuning, replikointi, failover) vaatii kokemusta — 4buildsitessa hoidamme sen, mutta itse isännöitynä se on vaativaa.
- Kirjoitukset kulkevat yhden primäärisolmun kautta — jakaminen usealle solmulle (sharding) ei ole natiivia ja vaatii lisätyökaluja.
- Jokainen yhteys kuluttaa suhteellisen paljon muistia — suurella yhteysmäärällä tarvitaan poolausta (PgBouncer).
- Kokotekstihaku on hyvä, mutta jää alle erikoismoottoreiden edistyneessä relevanssissa ja hakuehdotuksissa.
Lyhyt yhteenveto
PostgreSQL on vakiovalinta sivustoille, verkkokaupoille, markkinapaikoille ja SaaS-alustoille, joissa tilauksia, maksuja ja liidejä ei saa hukata. Yksinkertainen blogi pärjäisi vähemmälläkin — mutta vapaa lisenssi tarkoittaa, että 4buildsitessa saat tämän turvatason joka tapauksessa, ilman lisäkustannusta.
Tekniset tiedot
| Ominaisuus | Raja / kynnys | Tyypillinen käyttö | |
|---|---|---|---|
| Transaktioiden eheys | Täysi ACID + MVCC millä tahansa taululla | Hyvin pitkät transaktiot pitävät resursseja lukittuina | Tilaukset, maksut, varastosaldot |
| JSONB | Natiivi JSON, indeksoitavissa GIN:llä | Hyvin monimutkaiset JSON-kyselyt hitaampia kuin perinteisillä sarakkeilla | Sivujen sisältö, asetukset, tuotteen attribuutit |
| Kokotekstihaku | tsvector + pg_trgm, monikielinen (romania mukana) | Relevanssi alle erikoishakumoottoreiden | Haku verkkokaupan katalogista |
| Varmuuskopiointi ja replikointi | WAL, PITR, streaming-replikointi | Automaattinen failover vaatii ulkoisia työkaluja (esim. Patroni) | Palautuminen häiriöistä, korkea käytettävyys |
| Skaalaus | Lukureplikat, taulujen partitiointi | Kirjoitukset pysyvät primäärisolmussa | Suuret katalogit ja tilaushistoriat |
| Kustannus | Avoin lähdekoodi, vapaa lisenssi | Todellinen kustannus on infrastruktuuri ja ylläpito | Sisältyy 4buildsiten tilauksiin |
PostgreSQL vs MySQL vs MongoDB
| Kriteeri | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| ACID-eheys | Täysi, millä tahansa taululla, oletuksena | Täysi vain InnoDB-moottorilla | Usean dokumentin transaktiot vasta v4.0:sta, rajoituksin |
| Tietotyypit ja JSON | Indeksoitava JSONB + rikkaat tyypit (array, range) | Validi JSON, epäsuora indeksointi (generoidut sarakkeet) | Natiivit BSON-dokumentit, ei pakotettua skeemaa |
| Kokotekstihaku | Mukana: tsvector, pg_trgm, monikielinen stemming | Perus (InnoDB FTS) | Perus; edistynyt versio (Atlas Search) vain kaupallisessa pilvessä |
| Lisenssi / kustannus | PostgreSQL License — vapaa, ei kaupallista omistajaa | GPL, Oraclen omistama (kaupalliset versiot) | SSPL — ei enää perinteinen avoimen lähdekoodin lisenssi |
| Ekosysteemi | Tehokkaat laajennukset (PostGIS, pgvector), tuki kaikissa ORM:issä | Kaikkialla perinteisessä PHP/WordPress-hostingissa | Vahva Node.js:ssä, suppeampi muualla |
| Soveltuvuus verkkokauppaan | Erinomainen — tilaukset, varastosaldot ja maksut johdonmukaisia | Hyvä — historiallinen standardi (Magento, WooCommerce) | Joustaviin katalogeihin; tilausten johdonmukaisuus vaatii lisäpanostusta |
Usein kysytyt kysymykset
Vaikuttaako PostgreSQL sivustoni nopeuteen?
Ei negatiivisesti. Julkiset sivut tarjoillaan Next.js:stä välimuistilla, ja indeksoidut PostgreSQL-kyselyt vastaavat millisekunneissa. Tyypillisen sivuston tai verkkokaupan koossa tietokanta ei tyypillisesti ole pullonkaula — frontend ja kuvat vaikuttavat koettuun nopeuteen paljon enemmän.
Miksi ei WordPress MySQL:llä, kuten kaikki muut?
WordPress on PHP-CMS, jonka teemoja ja lisäosia on ylläpidettävä ja päivitettävä jatkuvasti. 4buildsite generoi Next.js-sivustoja PostgreSQL:llä, ilman paikattavia lisäosia ja vähemmillä tietoturva-aukoilla. MySQL ei ole huono valinta — mutta PostgreSQL tuo indeksoitavan JSONB:n, paremman kokotekstihaun ja tiukemman eheyden samalla vapaalla lisenssillä.
Mitä datalleni tapahtuu, jos palvelin kaatuu?
PostgreSQL kirjoittaa jokaisen muutoksen ensin WAL-lokiin, joten uudelleenkäynnistyksessä tietokanta rakennetaan uudelleen ilman vioittunutta dataa — äkillinen palvelinkaatuminen ei vioita tilauksiasi. Lisäksi data on pysyvillä volyymeillä, erillään sovelluksesta, joten alustan uudelleenkäynnistys tai päivitys ei koske siihen.
Voinko viedä datani pois, jos lähden 4buildsitesta?
Kyllä. Datasi on PostgreSQL:ssä, alan standardimuodossa — tuotteet, tilaukset ja asiakkaat voi viedä yleisiin formaatteihin (CSV, SQL). Omaa formaattia, joka lukitsisi sinut alustalle, ei ole.
Riittääkö PostgreSQL, jos kauppani kasvaa?
Kyllä, erittäin suurella marginaalilla. Instagram ja Reddit ovat skaalanneet PostgreSQL:llä satoihin miljooniin käyttäjiin käyttäen indeksejä, partitiointia ja lukureplikoita — samat tekniikat ovat käytettävissä myös 4buildsitessa. Verkkokauppa saavuttaa PostgreSQL:n rajat paljon myöhemmin kuin oman logistiikkansa rajat.
Paljonko PostgreSQL-lisenssi maksaa?
Ei mitään. PostgreSQL:llä on vapaa lisenssi (PostgreSQL License, BSD-tyyppinen), ei palvelin- tai ydinkohtaisia maksuja. 4buildsitessa tietokanta sisältyy tilaukseesi hostingin ja SSL:n kanssa — et maksa siitä erikseen mitään.