PostgreSQL — il database del tuo sito e del tuo negozio online
Ogni prodotto, ordine, contatto e pagina che crei su 4buildsite vive in un database PostgreSQL. Non devi amministrarlo tu, ma vale la pena sapere perché lo abbiamo scelto: integrità transazionale per i pagamenti, un'affidabilità dimostrata da quasi 30 anni e zero costi di licenza dentro il tuo prezzo.
Che cos'è PostgreSQL e che cosa custodisce del tuo sito
PostgreSQL è un sistema di database relazionale open source, sviluppato senza interruzioni dal 1996, con radici nel progetto POSTGRES dell'Università di Berkeley (1986). Su 4buildsite, PostgreSQL è il luogo in cui vivono i dati del tuo sito: prodotti e giacenze, ordini e pagamenti, contatti raccolti dai moduli e contenuti delle pagine. Tu lavori nell'editor visuale; PostgreSQL conserva al sicuro ogni modifica.
Perché ti riguarda, se non sei uno sviluppatore? Perché la differenza tra un database serio e uno fragile si vede proprio nei momenti difficili: un picco di traffico durante una promozione, un pagamento ritentato due volte, un riavvio del server. PostgreSQL è progettato per attraversare questi momenti senza perdere né corrompere dati: per questo lo usano su larga scala aziende come Instagram e Reddit e, storicamente, ha sostenuto l'infrastruttura di Skype.
- Prodotti, varianti e giacenze: il catalogo completo del tuo negozio
- Ordini, pagamenti Stripe e fatture: lo storico delle vendite, senza buchi
- Contatti dai moduli: ogni richiesta di preventivo, salvata con certezza
- I contenuti delle pagine e dei modelli: tutto ciò che modifichi nell'editor visuale
- I domini, le impostazioni e le versioni pubblicate del tuo sito
Ordini e pagamenti senza dati corrotti: l'integrità ACID
Quando un cliente effettua un ordine accadono più cose insieme: la giacenza cala, l'ordine viene creato, il pagamento Stripe viene registrato. PostgreSQL le esegue come un'unica transazione: o avvengono tutte, o nessuna. Se il pagamento fallisce a metà, la giacenza torna automaticamente al valore iniziale. Questo comportamento si chiama ACID (atomicità, coerenza, isolamento, durabilità) ed è garantito da PostgreSQL su qualsiasi tabella, senza configurazioni particolari.
Oltre alle transazioni, PostgreSQL applica regole di integrità direttamente nel database: una riga d'ordine non può fare riferimento a un prodotto inesistente, una giacenza non può diventare negativa, l'e-mail di un account non può duplicarsi. Questi vincoli (chiavi esterne, check, unique) fermano i dati errati prima che entrino, non dopo che hanno rovinato il report delle vendite.
Per i marketplace l'integrità conta doppio: commissioni e pagamenti ripartiti tramite Stripe Connect si calcolano dai dati dell'ordine. Un ordine duplicato o un importo incoerente significherebbe denaro diviso male tra i venditori. Le transazioni di PostgreSQL mantengono corretti questi calcoli, ordine dopo ordine.
Ricerca nel catalogo e contenuti flessibili
PostgreSQL include un motore di ricerca full-text: i clienti cercano «scarpe da running» e trovano i prodotti giusti, con dizionari di stemming disponibili anche per l'italiano. L'estensione pg_trgm aggiunge tolleranza agli errori di battitura. Per un negozio, queste capacità significano che il catalogo si può interrogare bene senza un servizio separato tipo Elasticsearch: meno componenti che possono guastarsi e costi di infrastruttura più bassi.
Il contenuto delle pagine costruite nell'editor visuale non ha una struttura fissa: un blocco hero, un modulo e una galleria hanno campi diversi. PostgreSQL risolve la questione con JSONB: archivia JSON in modo nativo, indicizzabile con indici GIN e interrogabile come qualsiasi colonna. Ottieni la flessibilità di un database documentale mantenendo l'integrità relazionale per ordini e pagamenti, in un solo sistema anziché in due.
- tsvector e dizionari di stemming (italiano incluso): ricerca pertinente nel catalogo
- pg_trgm: i clienti trovano il prodotto anche sbagliando una lettera
- JSONB con indici GIN: i blocchi di pagina flessibili si interrogano con gli indici
Affidabilità: backup, ripristino e nessuna sorpresa
PostgreSQL scrive ogni modifica prima in un giornale (WAL, Write-Ahead Log) e solo dopo nei dati veri e propri. Se il server si arresta all'improvviso, al riavvio il database si ricostruisce dal giornale, senza dati corrotti. Sullo stesso meccanismo PostgreSQL costruisce anche il ripristino a un istante preciso (PITR), una funzione standard del motore per le installazioni che archiviano il giornale WAL. Su 4buildsite i dati risiedono su volumi persistenti, separati dall'applicazione, quindi un riavvio o un aggiornamento della piattaforma non li tocca.
PostgreSQL supporta anche la replica in streaming: una copia sincronizzata del database. Per il tuo sito, l'affidabilità del database si traduce direttamente in SEO e GEO: un sito che risponde con costanza viene scansionato e indicizzato con costanza, mentre errori 5xx ripetuti fanno scendere le posizioni su Google.
Scalabilità e costi: crescere senza fatture di licenza
Quando il negozio cresce, PostgreSQL cresce con lui: gli indici sostengono le interrogazioni su cataloghi da centinaia di migliaia di prodotti, il partizionamento divide lo storico degli ordini per periodo e le repliche di lettura assorbono il traffico dei report. Instagram e Reddit hanno scalato su PostgreSQL fino a centinaia di milioni di utenti: un negozio online raggiunge i limiti di questa tecnologia molto più tardi di quanto creda.
PostgreSQL ha una licenza libera (PostgreSQL License, di tipo BSD): nessun costo di licenza e nessun proprietario commerciale che possa cambiare le regole da un giorno all'altro. I database commerciali si licenziano di norma per core di processore, e quel costo finisce inevitabilmente nel prezzo pagato dal cliente. Su 4buildsite il database è incluso nel piano, insieme all'hosting e all'SSL, senza alcuna voce di spesa separata.
Vantaggi e limiti
Vantaggi
- Transazioni ACID complete: ordini e pagamenti restano coerenti anche in caso di errori o crash del server.
- Affidabilità dimostrata dal 1996, in produzione su Instagram, Reddit e, storicamente, Skype.
- JSONB nativo: contenuti di pagina flessibili senza sacrificare l'integrità relazionale.
- Ricerca full-text inclusa, con stemming per l'italiano: cercare nel catalogo senza un servizio separato.
- Licenza libera: nessun costo di licenza nascosto nel prezzo del tuo piano.
- Giornale WAL: dopo un arresto improvviso del server il database si ricostruisce al riavvio senza dati corrotti.
Limiti
- L'amministrazione avanzata (tuning, replica, failover) richiede esperienza: su 4buildsite ce ne occupiamo noi, ma in self-hosting è impegnativa.
- Le scritture passano da un unico nodo primario: distribuirle su più nodi (sharding) non è nativo e richiede strumenti aggiuntivi.
- Ogni connessione consuma parecchia memoria: con molte connessioni serve un pool (PgBouncer).
- La ricerca full-text è buona, ma resta sotto i motori dedicati quanto a pertinenza avanzata e suggerimenti.
Verdetto in breve
PostgreSQL è la scelta standard per siti, negozi online e marketplace in cui ordini, pagamenti e contatti non possono andare persi. Un blog semplice se la caverebbe con meno, ma la licenza libera fa sì che su 4buildsite tu riceva comunque questo livello di sicurezza, senza costi aggiuntivi.
Tabella delle specifiche
| Capacità | Limite / soglia | Uso tipico | |
|---|---|---|---|
| Integrità transazionale | ACID completo e MVCC, su qualsiasi tabella | Le transazioni molto lunghe tengono bloccate le risorse | Ordini, pagamenti, giacenze |
| JSONB | JSON nativo, indicizzabile con GIN | Le interrogazioni molto complesse su JSON sono più lente rispetto alle colonne classiche | Contenuti di pagina, impostazioni, attributi di prodotto |
| Ricerca full-text | tsvector e pg_trgm, multilingua (italiano incluso) | Pertinenza inferiore ai motori di ricerca dedicati | La ricerca nel catalogo del negozio |
| Backup e replica | WAL, PITR, replica in streaming | Il failover automatico richiede strumenti esterni (per esempio Patroni) | Ripristino dopo un incidente, alta disponibilità |
| Scalabilità | Repliche di lettura, partizionamento delle tabelle | Le scritture restano sul nodo primario | Cataloghi e storici ordini di grandi dimensioni |
| Costo | Open source, licenza libera | Il costo reale sono l'infrastruttura e l'amministrazione | Incluso nei piani 4buildsite |
PostgreSQL a confronto con MySQL e MongoDB
| Criterio | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| Integrità ACID | Completa, su qualsiasi tabella, per impostazione predefinita | Completa solo con il motore InnoDB | Transazioni su più documenti solo dalla v4.0, con limitazioni |
| Tipi di dati e JSON | JSONB indicizzabile e tipi ricchi (array, range) | JSON valido, indicizzazione indiretta (colonne generate) | Documenti BSON nativi, senza schema imposto |
| Ricerca full-text | Inclusa: tsvector, pg_trgm, stemming multilingua | Di base (InnoDB FTS) | Di base; la variante avanzata (Atlas Search) solo nel cloud commerciale |
| Licenza / costo | PostgreSQL License: libera, senza proprietario commerciale | GPL, di proprietà di Oracle (edizioni commerciali) | SSPL: non è più una licenza open source classica |
| Ecosistema | Estensioni potenti (PostGIS, pgvector), supporto in tutti gli ORM | Onnipresente nell'hosting classico PHP/WordPress | Forte su Node.js, più limitato altrove |
| Adeguatezza per l'e-commerce | Eccellente: ordini, giacenze e pagamenti coerenti con certezza | Buona: lo standard storico (Magento, WooCommerce) | Adatto ai cataloghi flessibili; la coerenza degli ordini richiede lavoro aggiuntivo |
Domande frequenti
PostgreSQL incide sulla velocità del mio sito?
Le pagine pubbliche vengono servite da Next.js con cache, e le interrogazioni PostgreSQL usano indici sulle colonne cercate. Alle dimensioni di un sito o di un negozio tipici, sulla velocità percepita pesano di più il frontend e le immagini.
Perché non WordPress con MySQL, come fanno tutti?
WordPress è un CMS in PHP con temi e plugin da mantenere e aggiornare di continuo. 4buildsite genera siti Next.js con PostgreSQL, senza plugin da correggere e con meno falle di sicurezza. MySQL non è una cattiva scelta, ma PostgreSQL aggiunge JSONB indicizzabile, una ricerca full-text migliore e un'integrità più rigorosa, con la stessa licenza libera.
Che cosa succede ai miei dati se il server si guasta?
PostgreSQL scrive ogni modifica prima nel giornale WAL, quindi al riavvio il database si ricostruisce senza dati corrotti: un arresto improvviso non corrompe i tuoi ordini. In più i dati risiedono su volumi persistenti, separati dall'applicazione, così un riavvio o un aggiornamento della piattaforma non li tocca.
Posso esportare i miei dati se lascio 4buildsite?
Sì. I tuoi dati stanno in PostgreSQL, uno standard del settore: prodotti, ordini e clienti si possono esportare nei formati più diffusi (CSV, SQL). Non esiste alcun formato proprietario che ti vincoli alla piattaforma.
PostgreSQL regge se il mio negozio cresce?
Sì, con un margine molto ampio. Instagram e Reddit hanno scalato su PostgreSQL fino a centinaia di milioni di utenti usando indici, partizionamento e repliche di lettura: le stesse tecniche disponibili anche su 4buildsite. Un negozio online incontra i limiti della propria logistica molto prima di quelli di PostgreSQL.
Quanto mi costa la licenza di PostgreSQL?
Nulla. PostgreSQL ha una licenza libera (PostgreSQL License, di tipo BSD), senza canoni per server o per core. Su 4buildsite il database è incluso nel tuo piano, insieme all'hosting e all'SSL: non paghi nulla a parte per averlo.