Tehnoloģijas

← Sākums
Dati un glabāšana

PostgreSQL — tavas vietnes un veikala datubāze

Katrs produkts, pasūtījums, lead un lapa, ko izveido platformā 4buildsite, atrodas PostgreSQL datubāzē. Tev tā nav jāadministrē — bet ir vērts zināt, kāpēc to izvēlējāmies: darījumu integritāte maksājumiem, gandrīz 30 gadu pierādīta uzticamība un nulles licenču izmaksas tavā cenā.

Kas ir PostgreSQL un ko tas glabā tavā vietnē

PostgreSQL ir relāciju datubāzu sistēma ar atvērto pirmkodu, kas nepārtraukti tiek izstrādāta kopš 1996. gada — ar saknēm Kalifornijas Universitātes Berklijā projektā POSTGRES (1986). Platformā 4buildsite PostgreSQL ir vieta, kur atrodas tavas vietnes dati: produkti un krājumi, pasūtījumi un maksājumi, lead no veidlapām un lapu saturs. Tu strādā vizuālajā redaktorā; PostgreSQL droši saglabā katru izmaiņu.

Kāpēc tas ir svarīgi tev, ja neesi programmētājs? Tāpēc, ka atšķirība starp nopietnu un trauslu datubāzi parādās tieši grūtajos brīžos: datplūsmas pīķis akcijas laikā, divreiz atkārtots maksājums, servera restarts. PostgreSQL ir veidota, lai šos brīžus izturētu, nezaudējot un nebojājot datus — tāpēc to lielā mērogā izmanto tādi uzņēmumi kā Instagram un Reddit, un vēsturiski tā bija Skype infrastruktūras pamatā.

  • Produkti, varianti un krājumi — tava veikala pilns katalogs
  • Pasūtījumi, Stripe maksājumi un rēķini — pārdošanas vēsture bez robiem
  • Lead no veidlapām — katrs piedāvājuma pieprasījums tiek garantēti saglabāts
  • Lapu un veidņu saturs — viss, ko rediģē vizuālajā redaktorā
  • Tavas vietnes domēni, iestatījumi un publicētās versijas

Pasūtījumi un maksājumi bez bojātiem datiem — ACID integritāte

Kad klients veic pasūtījumu, vienlaikus notiek vairākas lietas: samazinās krājums, tiek izveidots pasūtījums, tiek reģistrēts Stripe maksājums. PostgreSQL tās izpilda kā vienu darījumu: vai nu notiek viss, vai nekas. Ja maksājums neizdodas pa vidu, krājums automātiski atgriežas sākotnējā vērtībā. Šo uzvedību sauc par ACID (Atomicity, Consistency, Isolation, Durability), un PostgreSQL to garantē jebkurai tabulai bez īpašas konfigurēšanas.

Līdztekus darījumiem PostgreSQL uzliek integritātes noteikumus tieši datubāzē: pasūtījuma rinda nevar atsaukties uz neesošu produktu, krājums nevar kļūt negatīvs, konta e-pasts nevar dublēties. Šie ierobežojumi (foreign key, check, unique) aptur nepareizos datus, pirms tie nonāk datubāzē — nevis pēc tam, kad tie jau sabojājuši tavu pārdošanas pārskatu.

Mārketpleisiem integritāte ir svarīga divkārt: komisijas un maksājumi, kas sadalīti ar Stripe Connect, tiek aprēķināti no pasūtījuma datiem. Dublēts pasūtījums vai nekonsekventa summa nozīmētu nepareizi sadalītu naudu starp pārdevējiem. PostgreSQL darījumi nodrošina šo aprēķinu pareizību, pasūtījumu pēc pasūtījuma.

Ātra meklēšana katalogā un elastīgs saturs

PostgreSQL ietver pilnteksta meklēšanas dzinēju: klienti meklē „skriešanas apavi” un atrod atbilstošos produktus, ar stemming vārdnīcām, tostarp rumāņu valodai. Paplašinājums pg_trgm pievieno toleranci pret drukas kļūdām. Veikalam šīs iespējas nozīmē, ka katalogā var labi meklēt bez atsevišķa Elasticsearch tipa pakalpojuma — tātad mazāk komponentu, kas var atteikt, un zemākas infrastruktūras izmaksas.

Vizuālajā redaktorā veidoto lapu saturam nav fiksētas struktūras — hero bloka, veidlapas un galerijas lauki atšķiras. PostgreSQL to atrisina ar JSONB: glabā natīvu JSON, indeksējamu ar GIN indeksiem, vaicājamu kā jebkuru kolonnu. Tu saņem dokumentu datubāzes elastību, bet saglabā relāciju integritāti pasūtījumiem un maksājumiem — vienā sistēmā, nevis divās.

  • tsvector + stemming vārdnīcas (ieskaitot rumāņu) — atbilstoša meklēšana katalogā
  • pg_trgm — klienti atrod produktu, pat ja pieļauj kļūdu vienā burtā
  • JSONB ar GIN indeksiem — elastīgie lapu bloki joprojām ir ātri vaicājami

Uzticamība: rezerves kopijas, atjaunošana un nekādu pārsteigumu

PostgreSQL katru izmaiņu vispirms ieraksta žurnālā (WAL — Write-Ahead Log) un tikai pēc tam pašos datos. Ja serveris pēkšņi apstājas, pēc atkārtotas palaišanas datubāze tiek atjaunota no žurnāla, bez bojātiem datiem. Uz tā paša mehānisma PostgreSQL balsta arī atjaunošanu uz laika punktu (PITR) — dzinēja standarta iespēju instalācijām, kas arhivē WAL žurnālu. Platformā 4buildsite dati atrodas pastāvīgos apjomos, atdalītos no lietotnes, tāpēc platformas restarts vai atjauninājums tiem neskar.

PostgreSQL atbalsta arī streaming replikāciju — sinhronizētu datubāzes kopiju, kas vajadzības gadījumā ir gatava pārņemt datplūsmu. Tavai vietnei datubāzes uzticamība tieši pārtop SEO un GEO: vietne, kas atbild pastāvīgi, tiek pastāvīgi pārmeklēta un indeksēta, bet atkārtotas 5xx kļūdas pazemina pozīcijas Google un apgrūtina satura izgūšanu ģeneratīvajām atbilžu sistēmām.

Mērogošana un izmaksas — izaugsme bez licenču rēķiniem

Kad veikals aug, līdzi aug arī PostgreSQL: indeksi uztur vaicājumus ātrus katalogos ar simtiem tūkstošu produktu, particionēšana sadala pasūtījumu vēsturi pa periodiem, bet lasīšanas replikas pārņem pārskatu datplūsmu. Instagram un Reddit mērogojās uz PostgreSQL līdz simtiem miljonu lietotāju — tiešsaistes veikals šīs tehnoloģijas robežas sasniedz daudz vēlāk, nekā domā.

PostgreSQL ir brīva licence (PostgreSQL License, BSD tipa) — bez licences izmaksām un bez komerciāla īpašnieka, kas var mainīt noteikumus pa nakti. Komerciālās datubāzes parasti licencē par procesora kodolu, un izmaksas neizbēgami nonāk klienta maksātajā cenā. Platformā 4buildsite datubāze ir iekļauta plānā līdzās hostingam un SSL — bez jebkādas atsevišķas maksas.

Priekšrocības un ierobežojumi

Priekšrocības

  • Pilni ACID darījumi — pasūtījumi un maksājumi paliek konsekventi pat kļūdu vai servera atteices gadījumā.
  • Kopš 1996. gada pierādīta uzticamība, produkcijā Instagram, Reddit un vēsturiski Skype.
  • Natīvs JSONB — elastīgs lapu saturs, neupurējot relāciju integritāti.
  • Iekļauta pilnteksta meklēšana ar stemming rumāņu valodai — meklēšana katalogā bez atsevišķa pakalpojuma.
  • Brīva licence — nulles licences izmaksas, kas slēptos tavā plāna cenā.
  • WAL žurnāls — pēkšņi apstājoties serverim, datubāze pēc atkārtotas palaišanas tiek atjaunota bez bojātiem datiem.

Ierobežojumi

  • Uzlabotai administrēšanai (tuning, replikācija, failover) nepieciešama pieredze — platformā 4buildsite to darām mēs, taču self-hosted tā ir prasīga.
  • Ieraksti notiek uz viena primārā mezgla — sadalīšana pa vairākiem mezgliem (sharding) nav natīva un prasa papildu rīkus.
  • Katrs savienojums patērē samērā daudz atmiņas — pie daudziem savienojumiem nepieciešams pooling (PgBouncer).
  • Pilnteksta meklēšana ir laba, taču pēc uzlabotas atbilstības un meklēšanas ieteikumiem atpaliek no specializētajiem dzinējiem.

Īss secinājums

PostgreSQL ir standarta izvēle vietnēm, tiešsaistes veikaliem, mārketpleisiem un SaaS platformām, kurās pasūtījumi, maksājumi un lead nedrīkst pazust. Vienkāršam blogam pietiktu arī ar mazāk — taču brīvā licence nozīmē, ka platformā 4buildsite šo drošības līmeni tāpat saņem bez papildu izmaksām.

Specifikāciju tabula

IespējaIerobežojums / slieksnisTipisks pielietojums
Darījumu integritātePilns ACID + MVCC, jebkurā tabulāĻoti gari darījumi notur bloķētus resursusPasūtījumi, maksājumi, krājumi
JSONBNatīvs JSON, indeksējams ar GINĻoti sarežģīti vaicājumi uz JSON ir lēnāki nekā uz klasiskām kolonnāmLapu saturs, iestatījumi, produktu atribūti
Pilnteksta meklēšanatsvector + pg_trgm, daudzvalodu (ieskaitot rumāņu)Atbilstība zemāka nekā specializētajiem meklēšanas dzinējiemMeklēšana veikala katalogā
Rezerves kopijas un replikācijaWAL, PITR, streaming replikācijaAutomātiskam failover nepieciešami ārēji rīki (piem., Patroni)Atjaunošana pēc incidentiem, augsta pieejamība
MērogošanaLasīšanas replikas, tabulu particionēšanaIeraksti paliek uz primārā mezglaLieli katalogi un pasūtījumu vēsture
IzmaksasAtvērtā koda, brīva licenceReālās izmaksas ir infrastruktūra un administrēšanaIekļauts 4buildsite plānos

PostgreSQL pret MySQL pret MongoDB

KritērijsPostgreSQLMySQLMongoDB
ACID integritātePilna, jebkurā tabulā, pēc noklusējumaPilna tikai ar InnoDB dzinējuVairāku dokumentu darījumi tikai no v4.0, ar ierobežojumiem
Datu tipi un JSONIndeksējams JSONB + bagāti tipi (array, range)Derīgs JSON, netieša indeksēšana (ģenerētas kolonnas)Natīvi BSON dokumenti, bez uzspiestas shēmas
Pilnteksta meklēšanaIekļauta: tsvector, pg_trgm, daudzvalodu stemmingPamata (InnoDB FTS)Pamata; uzlabotais variants (Atlas Search) tikai komerciālajā mākonī
Licence / izmaksasPostgreSQL License — brīva, bez komerciāla īpašniekaGPL, pieder Oracle (komerciālie izdevumi)SSPL — vairs nav klasiska atvērtā koda licence
EkosistēmaJaudīgi paplašinājumi (PostGIS, pgvector), atbalsts visos ORMVisuresošs klasiskajā PHP/WordPress hostingāSpēcīgs uz Node.js, citur ierobežotāks
Piemērotība e-komercijaiTeicama — pasūtījumi, krājumi un maksājumi garantēti konsekventiLaba — vēsturiskais standarts (Magento, WooCommerce)Elastīgiem katalogiem; pasūtījumu konsekvence prasa papildu pūles

Biežāk uzdotie jautājumi

Vai PostgreSQL ietekmē manas vietnes ātrumu?

Ne negatīvā nozīmē. Publiskās lapas tiek apkalpotas no Next.js ar kešatmiņu, bet indeksēti PostgreSQL vaicājumi tiek izpildīti ar indeksu palīdzību. Tipiskas vietnes vai veikala apjomā datubāze parasti nav sašaurinājums — uztvertajam ātrumam daudz svarīgāki ir frontend un attēli.

Kāpēc ne WordPress ar MySQL, kā visiem?

WordPress ir PHP CMS ar tēmām un spraudņiem, kas pastāvīgi jāuztur un jāatjaunina. 4buildsite ģenerē Next.js vietnes ar PostgreSQL: bez spraudņiem, kas jālāpa, un ar mazāk drošības caurumu. MySQL nav slikta izvēle — taču PostgreSQL pievieno indeksējamu JSONB, labāku pilnteksta meklēšanu un stingrāku integritāti, ar tādu pašu brīvo licenci.

Kas notiek ar maniem datiem, ja serveris atslēdzas?

PostgreSQL katru izmaiņu vispirms ieraksta WAL žurnālā, tāpēc pēc atkārtotas palaišanas datubāze tiek atjaunota bez bojātiem datiem — pēkšņa servera atteice tavus pasūtījumus nebojā. Turklāt dati atrodas pastāvīgos apjomos, atdalītos no lietotnes, tāpēc platformas restarts vai atjauninājums tiem neskar.

Vai varu eksportēt savus datus, ja pametu 4buildsite?

Jā. Tavi dati atrodas PostgreSQL — nozares standarta formātā; produktus, pasūtījumus un klientus var eksportēt ierastos formātos (CSV, SQL). Nav patentēta formāta, kas tevi piesaistītu platformai.

Vai PostgreSQL tiks galā, ja mans veikals augs?

Jā, ar ļoti lielu rezervi. Instagram un Reddit mērogojās uz PostgreSQL līdz simtiem miljonu lietotāju, izmantojot indeksus, particionēšanu un lasīšanas replikas — tās pašas metodes ir pieejamas arī platformā 4buildsite. Tiešsaistes veikals PostgreSQL robežas sasniedz daudz vēlāk nekā savas loģistikas robežas.

Cik man izmaksā PostgreSQL licence?

Nekas. PostgreSQL ir brīva licence (PostgreSQL License, BSD tipa), bez maksas par serveri vai kodolu. Platformā 4buildsite datubāze ir iekļauta tavā plānā kopā ar hostingu un SSL — par to atsevišķi nemaksā neko.

4b2b.net
Biznesa ekosistēma
4conta.ro
Grāmatvedība
4invoices.net
Rēķinu izrakstīšanas lietotne
4expenses.net
Izdevumu pārvaldība
4notify.net
Paziņojumi
4hosting.net
Hostings
4database.net
Datubāzes
4buildsite.net
Mājaslapu veidotājs
4myapp.net
Lietotņu veidotājs
4avatars.net
MI avatāri
4chaty.net
MI tērzēšanas robots
4webagency.net
Programma tīmekļa aģentūrām
4softedu.net
Mājaslapas izglītībai
4softcrm.net
CRM platforma
4softerp.net
ERP sistēma
4softhr.net
Personāla vadība
4mystaff.net
Darbinieku portāls
4myprojects.net
Projektu vadība
4mycontracts.net
Līgumi
4docs.net
Dokumentu pārvaldība
4appointments.net
Pieraksts
4marketingonline.net
Mārketings
4insurance.net
Apdrošināšana
4property.net
Nekustamais īpašums
4lawyers.net
Programma juristiem
4mygarage.net
Autoserviss
4driving.net
Autoskolas
4fleet.net
Autoparka vadība
4myevents.net
Pasākumi
4therapy.net
Terapija
4clinics.net
Klīnikas
4dental.net
Zobārstniecības klīnikas
4restaurants.net
Restorāni
4beautify.net
Skaistumkopšanas salons
4gym.net
Sporta klubi
4guards.net
Apsardzes uzņēmumi
4softvet.net
Veterinārās klīnikas
4softauto.net
Programmatūra auto biznesam
4construct.net
Būvniecības uzņēmumi
4marketplace.net
Tirdzniecības platforma
4shopy.net
Interneta veikals
4pricing.net
Cenu salīdzināšana
4salefood.net
Ēdiena piegāde
4rentify.net
Noma
4transports.net
Transports
4agencytravel.net
Ceļojumu aģentūra
4hotel.net
Viesnīcu vadība
4ong.net
NVO pārvaldība