PostgreSQL — veb saytınızın və onlayn mağazanızın arxasındakı verilənlər bazası
4buildsite-də yaratdığınız hər məhsul, sifariş, lead və səhifə PostgreSQL verilənlər bazasında yaşayır. Onu idarə etməli deyilsiniz — amma niyə məhz onu seçdiyimizi bilmək faydalıdır: ödənişlər üçün tranzaksiya bütövlüyü, təxminən 30 ildir sübut olunmuş etibarlılıq və qiymətinizdə sıfır lisenziya xərci.
PostgreSQL nədir və saytınız üçün nəyi saxlayır
PostgreSQL açıq mənbəli relyasiya verilənlər bazası sistemidir, 1996-cı ildən fasiləsiz inkişaf edir — kökləri Kaliforniya Universitetinin Berkeley-dəki POSTGRES layihəsinə (1986) gedib çıxır. 4buildsite-də PostgreSQL saytınızın məlumatlarının yaşadığı yerdir: məhsullar və ehtiyat, sifarişlər və ödənişlər, formalardan gələn lead-lər və səhifə məzmunu. Siz vizual redaktorda işləyirsiniz; PostgreSQL hər dəyişikliyi təhlükəsiz saxlayır.
Proqramçı deyilsinizsə, bu sizin üçün niyə vacibdir? Çünki ciddi verilənlər bazası ilə kövrək olan arasındakı fərq məhz çətin anlarda üzə çıxır: aksiya zamanı trafik sıçrayışı, iki dəfə təkrarlanan ödəniş, server yenidən başlaması. PostgreSQL bu anlardan məlumat itirmədən və ya korlamadan çıxmaq üçün nəzərdə tutulub — buna görə Instagram və Reddit kimi şirkətlər onu geniş miqyasda istifadə edir, tarixən isə Skype-ın infrastrukturunu da o işlədib.
- Məhsullar, variantlar və ehtiyat — mağazanızın tam kataloqu
- Sifarişlər, Stripe ödənişləri və qaimələr — satış tarixçəniz, boşluqsuz
- Formalardan gələn lead-lər — hər qiymət sorğusunun saxlanması təmin edilir
- Səhifə və şablon məzmunu — vizual redaktorda redaktə etdiyiniz hər şey
- Saytınızın domenləri, ayarları və dərc olunmuş versiyaları
Pozulmuş məlumat olmadan sifarişlər və ödənişlər — ACID bütövlüyü
Müştəri sifariş verdikdə eyni anda bir neçə şey baş verir: ehtiyat azalır, sifariş yaradılır, Stripe ödənişi qeydə alınır. PostgreSQL bunları vahid tranzaksiya kimi icra edir: ya hamısı baş verir, ya heç biri. Ödəniş yarıda uğursuz olarsa, ehtiyat avtomatik ilkin dəyərinə qayıdır. Bu davranış ACID (Atomicity, Consistency, Isolation, Durability) adlanır və PostgreSQL onu xüsusi konfiqurasiya olmadan hər cədvəldə təmin edir.
Tranzaksiyalardan əlavə, PostgreSQL bütövlük qaydalarını birbaşa verilənlər bazasında tətbiq edir: sifariş sətri mövcud olmayan məhsula istinad edə bilməz, ehtiyat mənfi ola bilməz, hesabın e-poçtu təkrarlana bilməz. Bu məhdudiyyətlər (foreign key, check, unique) pis məlumatı satış hesabatınızı pozandan sonra yox, daxil olmazdan əvvəl dayandırır.
Marketplace-lər üçün bütövlük iki dəfə vacibdir: Stripe Connect vasitəsilə komissiyalar və bölünmüş ödənişlər sifariş məlumatlarından hesablanır. Təkrarlanmış sifariş və ya uyğunsuz məbləğ pulun satıcılar arasında səhv bölünməsi deməkdir. PostgreSQL tranzaksiyaları bu hesablamaları sifariş-sifariş düzgün saxlayır.
Sürətli kataloq axtarışı və çevik məzmun
PostgreSQL tam mətn axtarış mühərriki ilə gəlir: müştərilər “qaçış ayaqqabısı” yazır və düzgün məhsulları tapır, stemming lüğətləri, o cümlədən rumın dili üçün də mövcuddur. pg_trgm extension-ı səhvlərə tolerantlıq əlavə edir. Mağaza üçün bu imkanlar kataloqun Elasticsearch tipli ayrıca xidmət olmadan yaxşı axtarıla bilməsi deməkdir — yəni sıradan çıxa biləcək komponent azdır, infrastruktur xərcləri aşağıdır.
Vizual redaktorda qurulan səhifələrin məzmunu sabit struktura malik deyil — hero bloku, forma və qalereyanın hər birinin fərqli sahələri var. PostgreSQL bunu JSONB ilə həll edir: yerli JSON saxlanması, GIN indekslərlə indekslənə bilir, istənilən sütun kimi sorğulanır. Sənəd verilənlər bazasının çevikliyini əldə edirsiniz, sifarişlər və ödənişlər üçün relyasiya bütövlüyünü isə saxlayırsınız — iki sistemdə yox, bir sistemdə.
- tsvector + stemming lüğətləri (rumın dili daxil olmaqla) — uyğun kataloq axtarışı
- pg_trgm — müştərilər səhv yazsalar belə məhsulu tapır
- GIN indeksli JSONB — çevik səhifə blokları sorğuda sürətli qalır
Etibarlılıq: ehtiyat nüsxə, bərpa və sürprizsiz
PostgreSQL hər dəyişikliyi əvvəlcə jurnala (WAL — Write-Ahead Log), yalnız sonra faktiki məlumata yazır. Server qəfil dayanarsa, verilənlər bazası yenidən başlayanda jurnaldan özünü bərpa edir, məlumat pozulmur. Eyni mexanizm PostgreSQL-in point-in-time recovery (PITR) üçün əsasını təşkil edir — WAL jurnalını arxivləşdirən quraşdırmalar üçün standart mühərrik imkanı. 4buildsite-də məlumat tətbiqdən ayrı, davamlı volume-larda yaşayır, buna görə platformanın yenidən başladılması və ya yenilənməsi ona heç vaxt toxunmur.
PostgreSQL həmçinin streaming replication dəstəkləyir — lazım olduqda trafiki öz üzərinə götürməyə hazır, sinxronlaşdırılmış verilənlər bazası nüsxəsi. Saytınız üçün bu, ardıcıl cavab verən sayt deməkdir: təkrarlanan 5xx xətaları həm ziyarətçilər, həm də axtarış crawler-ləri üçün problemdir.
Miqyaslanma və xərclər — lisenziya hesabları olmadan böyüyün
Mağazanız böyüdükcə PostgreSQL də onunla böyüyür: indekslər yüz minlərlə məhsullu kataloqlarda sorğuları sürətli saxlayır, partitioning sifariş tarixçəsini dövrlər üzrə bölür, read replica-lar hesabat trafikini qəbul edir. Instagram və Reddit PostgreSQL üzərində yüz milyonlarla istifadəçiyə qədər miqyaslandı — onlayn mağaza bu texnologiyanın hədlərinə düşündüyündən xeyli gec çatır.
PostgreSQL pulsuz lisenziyaya malikdir (PostgreSQL License, BSD tipli) — lisenziya haqqı yoxdur və qaydaları bir gecədə dəyişə biləcək kommersiya sahibi yoxdur. Kommersiya verilənlər bazaları adətən CPU nüvəsi üzrə lisenziyalaşdırılır və bu xərc qaçılmaz olaraq müştərinin qiymətinə düşür. 4buildsite-də verilənlər bazası planınıza hostinq və SSL ilə birlikdə daxildir — ayrıca haqq yoxdur.
Üstünlüklər və məhdudiyyətlər
Üstünlüklər
- Tam ACID tranzaksiyalar — sifarişlər və ödənişlər xətalar və ya server çökmələri zamanı da ardıcıl qalır.
- 1996-cı ildən sübut olunmuş etibarlılıq; Instagram, Reddit və tarixən Skype-da istehsalatdadır.
- Yerli JSONB — relyasiya bütövlüyündən imtina etmədən çevik səhifə məzmunu.
- Rumın stemming-i ilə daxili tam mətn axtarışı — ayrıca xidmət olmadan kataloq axtarışı.
- Pulsuz lisenziya — plan qiymətinizdə gizli lisenziya xərci sıfırdır.
- WAL jurnalı — server qəfil dayandıqdan sonra verilənlər bazası yenidən başlayanda özünü bərpa edir, məlumat pozulmur.
Məhdudiyyətlər
- Qabaqcıl idarəetmə (tuning, replication, failover) təcrübə tələb edir — 4buildsite-də bunu biz həll edirik, lakin self-hosting tələbkardır.
- Yazılar tək əsas node-da yaşayır — onları node-lar arasında bölmək (sharding) yerli deyil və əlavə alətlər tələb edir.
- Hər bağlantı nisbətən daha çox yaddaş istifadə edir — çoxsaylı bağlantılar pooling (PgBouncer) tələb edir.
- Tam mətn axtarışı yaxşıdır, lakin qabaqcıl uyğunluq və axtarış təklifləri üçün xüsusi mühərriklərdən aşağıdır.
Qısa nəticə
PostgreSQL sifarişlərin, ödənişlərin və lead-lərin heç vaxt itirilməməli olduğu saytlar, onlayn mağazalar, marketplace-lər və SaaS platformaları üçün standart seçimdir. Sadə bir blog daha azı ilə də kifayətlənə bilər — lakin pulsuz lisenziya sayəsində 4buildsite-də bu təhlükəsizlik səviyyəsini yenə də əlavə xərcsiz əldə edirsiniz.
Spesifikasiyalar cədvəli
| İmkan | Limit / hədd | Tipik istifadə | |
|---|---|---|---|
| Tranzaksiya bütövlüyü | Tam ACID + MVCC, hər cədvəldə | Çox uzun tranzaksiyalar resursları tutur | Sifarişlər, ödənişlər, ehtiyat |
| JSONB | Yerli JSON, GIN ilə indekslənə bilir | Çox mürəkkəb JSON sorğuları klassik sütunlardan yavaşdır | Səhifə məzmunu, ayarlar, məhsul atributları |
| Tam mətn axtarışı | tsvector + pg_trgm, çoxdilli (rumın dili daxil) | Uyğunluq xüsusi axtarış mühərriklərindən aşağıdır | Mağaza kataloqunda axtarış |
| Backup və replication | WAL, PITR, streaming replication | Avtomatik failover xarici alətlər tələb edir (məs. Patroni) | İnsidentlərdən bərpa, yüksək əlçatanlıq |
| Miqyaslanma | Read replica-lar, cədvəl partitioning | Yazılar əsas node-da qalır | Böyük kataloqlar və sifariş tarixçələri |
| Xərc | Açıq mənbə, pulsuz lisenziya | Real xərc infrastruktur və idarəetmədir | 4buildsite planlarına daxildir |
PostgreSQL vs MySQL vs MongoDB
| Kriteriya | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| ACID bütövlüyü | Tam, hər cədvəldə, defolt olaraq | Yalnız InnoDB mühərriki ilə tam | Multi-document tranzaksiyalar yalnız v4.0-dan, məhdudiyyətlərlə |
| Məlumat tipləri və JSON | İndekslənə bilən JSONB + zəngin tiplər (array, range) | Etibarlı JSON, dolayı indekslənmə (generated columns) | Yerli BSON sənədləri, sxem məcburi deyil |
| Tam mətn axtarışı | Daxili: tsvector, pg_trgm, çoxdilli stemming | Əsas (InnoDB FTS) | Əsas; qabaqcıl olanı (Atlas Search) yalnız kommersiya buludunda |
| Lisenziya / xərc | PostgreSQL License — pulsuz, kommersiya sahibi yoxdur | GPL, sahibi Oracle (kommersiya buraxılışları) | SSPL — artıq klassik açıq mənbə lisenziyası deyil |
| Ekosistem | Güclü extension-lar (PostGIS, pgvector), hər ORM tərəfindən dəstəklənir | Klassik PHP/WordPress hostinqində hər yerdə var | Node.js-də güclü, digər yerlərdə daha məhdud |
| E-ticarətə uyğunluq | Əla — sifarişlər, ehtiyat və ödənişlər ardıcıl təmin olunur | Yaxşı — tarixi standart (Magento, WooCommerce) | Çevik kataloqlar üçün; sifariş ardıcıllığı əlavə səy tələb edir |
Tez-tez verilən suallar
PostgreSQL saytımın sürətinə təsir edirmi?
Mənfi təsir etmir. İctimai səhifələr keşləmə ilə Next.js-dən təqdim olunur, indekslənmiş PostgreSQL sorğuları isə millisaniyələrlə cavab verir. Tipik sayt və ya mağaza ölçüsündə hiss olunan sürət üçün frontend və şəkillər verilənlər bazasından qat-qat vacibdir.
Niyə hamı kimi MySQL ilə WordPress yox?
WordPress daim baxım və yeniləmə tələb edən tema və plaginlərlə PHP CMS-dir. 4buildsite PostgreSQL ilə dəstəklənən Next.js saytları yaradır: yamalanmalı plaginsiz və daha az təhlükəsizlik boşluğu ilə. MySQL pis seçim deyil — lakin PostgreSQL eyni pulsuz lisenziya altında indekslənə bilən JSONB, daha yaxşı tam mətn axtarışı və daha sərt bütövlük əlavə edir.
Server dayansa məlumatlarıma nə olur?
PostgreSQL hər dəyişikliyi əvvəlcə WAL jurnalına yazır, buna görə yenidən başlayanda verilənlər bazası məlumat pozulmadan özünü bərpa edir — serverin qəfil çökməsi sifarişlərinizi korlamır. Bundan əlavə, məlumat tətbiqdən ayrı, davamlı volume-larda yaşayır, buna görə platformanın yenidən başladılması və ya yenilənməsi ona heç vaxt toxunmur.
4buildsite-dən ayrılsam, məlumatlarımı ixrac edə bilərəmmi?
Bəli. Məlumatlarınız sənaye standartı olan PostgreSQL formatında saxlanılır — məhsullar, sifarişlər və müştərilər geniş yayılmış formatlarda (CSV, SQL) ixrac oluna bilər. Sizi platformaya bağlayan mülkiyyət formatı yoxdur.
Mağazam böyüsə PostgreSQL tab gətirərmi?
Bəli, çox böyük ehtiyatla. Instagram və Reddit indekslər, partitioning və read replica-lar istifadə edərək PostgreSQL üzərində yüz milyonlarla istifadəçiyə qədər miqyaslandı — eyni texnikalar 4buildsite-də də mövcuddur. Onlayn mağaza PostgreSQL-in hədlərinə öz logistika hədlərindən xeyli gec çatır.
PostgreSQL lisenziyası nə qədərdir?
Heç nə. PostgreSQL pulsuz lisenziyaya malikdir (PostgreSQL License, BSD tipli), server və ya nüvə başına haqq yoxdur. 4buildsite-də verilənlər bazası planınıza hostinq və SSL ilə birlikdə daxildir — onun üçün ayrıca heç nə ödəmirsiniz.