Categoria

Pagina 1 di 1

MySQL: dalla query lenta al database che regge il carico

Ho gestito database MySQL con centinaia di milioni di record in produzione, e posso dire che i problemi di performance hanno quasi sempre le stesse tre cause: indici mancanti o sbagliati, query che fanno full table scan, architettura dati progettata senza pensare alle query reali. Il resto è dettaglio.

In questa categoria scrivo di MySQL applicato: indici, query tuning, InnoDB internals, EXPLAIN analysis, replica, partitioning, monitoring, backup logici e fisici. Se il tuo database è diventato il collo di bottiglia, parliamone. Oppure scopri il mio approccio all'ottimizzazione DB.

Backup incrementale di MySQL con xtrabackup: recovery point granulare senza blocchi

Backup incrementale di MySQL con xtrabackup: recovery point granulare senza blocchi mysqldump su database da 200GB richiede 4 ore e blocca le query durante l'esecuzione. Con Percona XtraBackup ho configurato backup incrementali ogni ora senza un singolo lock: il database continua a servire richieste, il backup è verificabile, il recovery è testato settimanalmente in automatico. Vi mostro la configurazione completa. Continua a leggere
Ultima modifica:

Reporting aziendale con Laravel e dati aggregati: costruire dashboard per il management

Reporting aziendale con Laravel e dati aggregati: costruire dashboard per il management Il reparto finance di un cliente generava i report mensili esportando 50.000 righe in Excel e filtrando manualmente. Ho costruito una dashboard Laravel con report pre-aggregati: query ottimizzate con indici covering, cache di 4 ore con invalidazione selettiva, export PDF/Excel e grafici interattivi con Chart.js. Continua a leggere
Ultima modifica:

PostgreSQL per sviluppatori PHP: quando sceglierlo rispetto a MySQL e come migrare

PostgreSQL per sviluppatori PHP: quando sceglierlo rispetto a MySQL e come migrare Ho migrato due applicazioni Laravel da MySQL a PostgreSQL negli ultimi 18 mesi. I motivi: JSONB nativo per dati semi-strutturati, full-text search senza Elasticsearch, e le transazioni ACID più robuste per sistemi finanziari. Vi racconto le differenze pratiche che si sentono nel codice quotidiano. Continua a leggere
Ultima modifica:

Eloquent performance: 10 pattern che rallentano le tue query senza che tu lo sappia

Eloquent performance: 10 pattern che rallentano le tue query senza che tu lo sappia Ho usato Laravel Telescope su un'applicazione di e-commerce per analizzare 48 ore di traffico reale. I risultati erano impietosi: 340 query per pagina di listing, di cui 280 erano N+1 generati da relazioni non ottimizzate. Vi mostro i 10 pattern più comuni e come identificarli prima che arrivino in produzione. Continua a leggere
Ultima modifica:

Database sharding in MySQL per applicazioni Laravel con milioni di record

Database sharding in MySQL per applicazioni Laravel con milioni di record Una piattaforma SaaS con 8 milioni di record nella tabella principale aveva query a 4 secondi nonostante tutti gli indici corretti. L'analisi ha mostrato che il problema non era l'indicizzazione ma il volume. Vi racconto l'approccio di sharding che abbiamo implementato con Laravel e come abbiamo gestito la migrazione live. Continua a leggere
Ultima modifica:

Diagnosi e risoluzione di connessioni lente al database MySQL su VPS senza supporto tecnico: guida operativa per Debian e Ubuntu

Diagnosi e risoluzione di connessioni lente al database MySQL su VPS senza supporto tecnico: guida operativa per Debian e Ubuntu Un gestionale Laravel su Hetzner con MySQL che impiegava 3-4 secondi per ogni query di ricerca prodotti. La causa: InnoDB buffer pool a 128MB su un database da 6GB, reverse DNS lookup attivo e 47 query senza indice per ogni pagina catalogo. Diagnosi con slow query log, EXPLAIN e MySQLTuner, fix in due ore. Continua a leggere
Ultima modifica:

MySQL esposto su un VPS Hetzner con root senza password: il CIS benchmark che applico nelle prime due ore di hardening

MySQL esposto su un VPS Hetzner con root senza password: il CIS benchmark che applico nelle prime due ore di hardening Su un VPS Hetzner AX41 con un e-commerce Laravel, MySQL 8.0 era raggiungibile da internet sulla porta 3306, l'utente root non aveva password, e l'applicazione usava root per tutte le operazioni - dal checkout alle migration. L'audit ha rivelato 14 violazioni del CIS Benchmark. Il protocollo di hardening che applico in due ore: mysql_secure_installation, segregazione utenti, bind su localhost, TLS obbligatorio, disabilitazione local_infile e audit log. Continua a leggere
Ultima modifica:

Migrare MySQL 5.7 EOL su Hetzner senza fermare il business: la strategia di replicazione che ho usato per spostare 78GB con quattro minuti di downtime

Migrare MySQL 5.7 EOL su Hetzner senza fermare il business: la strategia di replicazione che ho usato per spostare 78GB con quattro minuti di downtime Migrare un database MySQL 5.7 fuori supporto fa paura ai clienti, e quasi sempre per il motivo sbagliato: pensano al rischio di perdita dati quando il vero problema è il downtime. Il piano in cinque fasi che applico su Hetzner e OVH per spostare database critici con replicazione master-slave, riducendo il fermo da otto ore a cinque minuti. Continua a leggere
Ultima modifica: