Categoria

Pagina 3 di 3

Database: i dati veloci e integri, non solo "salvati da qualche parte"

Il database è quasi sempre il primo posto dove un'applicazione rallenta, e quasi sempre l'ultimo che qualcuno guarda. La maggior parte dei problemi di performance che ho visto in vent'anni non erano nel codice PHP: erano in una query senza indice, in uno schema pensato male o in un accesso ai dati che nessuno aveva mai profilato. In questa categoria il database torna al centro, dove merita di stare.

Il primo tema è la performance come questione di dati. Tuning e diagnosi delle query lente, indici usati con criterio, UUID v7 come chiave primaria per non distruggere le prestazioni di InnoDB, caching a più livelli quando ha senso. Il filo conduttore è sempre lo stesso: prima si misura dove sta davvero il collo di bottiglia, poi si interviene, e quasi sempre il guadagno arriva senza comprare un server più grande.

Il secondo tema è l'integrità e la continuità. Un database veloce ma che perde dati o che non si può ripristinare non serve a niente: backup che reggono davvero, dall'incrementale al dump senza lock, e migrazioni delicate come lo spostamento di una versione a fine vita senza fermare il business. Qui la posta in gioco non è la velocità, è la fiducia che i dati ci siano ancora domani.

Il terzo tema è la scala e il nuovo carico: sharding quando i record diventano milioni, la scelta ragionata fra MySQL e PostgreSQL, e il database che inizia a servire anche l'AI, con pgvector che trasforma PostgreSQL in un motore vettoriale senza aggiungere infrastruttura.

Se hai un database lento o uno schema da rivedere, vedi la consulenza IT e DevOps o scrivimi.

Il database non è un dettaglio implementativo. È il posto dove le scelte sbagliate diventano lente e costose.

Performance PHP su Hetzner, OVH e Digital Ocean: come ho ridotto un checkout da 4,2 secondi a 280 millisecondi senza upgrade hardware

Performance PHP su Hetzner, OVH e Digital Ocean: come ho ridotto un checkout da 4,2 secondi a 280 millisecondi senza upgrade hardware Quando un'applicazione PHP rallenta sotto carico, il primo riflesso del cliente è "compriamo un server più grosso". È quasi sempre la mossa sbagliata e la più costosa. Il caso di un B2B veronese del gennaio 2025 in cui ho portato il checkout da 4,2 secondi a 280 millisecondi con otto ore di lavoro: fix del pattern N+1, un indice composito mancante, cache Redis usata male, tuning di OPcache e delle code asincrone. Continua a leggere
Ultima modifica:

UUID v7 come chiave primaria in Laravel 12: perché HasUuids ora genera UUID ordinati e cosa cambia per le performance InnoDB

UUID v7 come chiave primaria in Laravel 12: perché HasUuids ora genera UUID ordinati e cosa cambia per le performance InnoDB La RFC 9562 (maggio 2024) raccomanda UUID v7 al posto di v1 per tutti i nuovi sistemi. In Laravel 12, il trait HasUuids genera UUID v7 di default - con timestamp a 48 bit nei primi byte, le insert su indici InnoDB B-tree tornano sequenziali. Percona documenta che UUID v4 causa fino a 500× più page split e tabelle 2× più grandi di chiavi sequenziali. Continua a leggere
Ultima modifica:

Ottimizzare le query Eloquent in applicazioni Laravel: strategie avanzate per la performance di gestionali ed e-commerce

Ottimizzare le query Eloquent in applicazioni Laravel: strategie avanzate per la performance di gestionali ed e-commerce Applicazioni Laravel performanti sono cruciali per gestionali ed e-commerce delle PMI. Spesso il collo di bottiglia risiede in query Eloquent non ottimizzate. Questo articolo esplora tecniche avanzate dall'eager loading alla selezione selettiva, fino alle subquery e all'automatic eager loading introdotto in Laravel 12, per trasformare le interazioni con il database da problema a punto di forza. Continua a leggere
Ultima modifica:

Symfony 7 e Data Lake con PostgreSQL: strategie di integrazione per l'analisi avanzata dei dati

Symfony 7 e Data Lake con PostgreSQL: strategie di integrazione per l'analisi avanzata dei dati Le PMI italiane generano quotidianamente una mole impressionante di dati che troppo spesso resta inutilizzata. Symfony 7, in sinergia con PostgreSQL configurato come Data Lake, diventa il motore per processi ETL efficienti e sicuri. In questa guida ti mostro come trasformare dati grezzi in insight azionabili per il business, con attenzione alla sicurezza e alla conformità GDPR e NIS2. Continua a leggere
Ultima modifica:

Script PHP per la creazione di liste email double opt-in

Script PHP per la creazione di liste email double opt-in Se hai un sito qualsiasi, dove richiedi la registrazione per usufruire del sito, molto probabilmente non hai mai pensato che le email che gli utenti utilizzano per registrarsi possano diventare denaro.. L'argomento che andrò a trattare oggi è un pò scottante, lo ammetto: le email di spam, pubblicitarie, sono davvero fastidiose. Ma se abbiamo un sito, e stiamo richiedendo la verifica dell'email dopo la registrazione, quelle email valgono oro. Il problema, però è il seguente: nessun advertiser accetterà … Continua a leggere
Ultima modifica:

Strumenti utili per i database

Tool gratuiti per il tuo lavoro sui dati:

SQL formatter, Generatore UUID, Convertitore CSV in JSON.