Gestione database: MySQL, MariaDB, PostgreSQL e Redis - init.d
EN

Gestione database: MySQL, MariaDB, PostgreSQL e Redis

Query veloci, dati al sicuro e backup che sai di poter ripristinare.

Il database è il punto in cui ogni problema diventa visibile: quando rallenta, rallenta l’applicazione; quando si ferma, si ferma l’azienda. Ci occupiamo di installazione, tuning e gestione di MySQL, MariaDB, PostgreSQL e Redis, con un obiettivo misurabile: query veloci, dati coerenti e backup che sai davvero di poter ripristinare. Configurazioni documentate, un solo referente tecnico e nessun lock-in.

Panoramica

Seguiamo l’intero ciclo di vita del dato: prima installazione, tuning di sistemi già in produzione, progettazione degli indici, replica, alta affidabilità e migrazioni. Lavoriamo sia su database self-hosted su server Linux sia su istanze gestite in cloud - su Google Cloud in prima battuta, su AWS e DigitalOcean in alternativa - e non abbiamo dogmi sul motore: scegliamo o manteniamo quello che regge meglio il tuo carico reale.

Il metodo parte sempre dai numeri, non dalle impressioni: slow query log, piani di esecuzione, metriche di memoria e I/O. Solo dopo tocchiamo configurazione e indici, un passo alla volta e sempre con la possibilità di tornare indietro. Ogni scelta finisce per iscritto - parametri, motivazioni, procedura di ripristino - così il database smette di essere una scatola nera che conosce solo chi l’ha installato e diventa un pezzo d’infrastruttura che chiunque può verificare.

Problemi tipici che risolviamo

  • Query che ieri rispondevano in millisecondi oggi impiegano secondi → analizziamo slow log e piani di esecuzione, poi sistemiamo indici e query peggiori.
  • L’e-commerce cede proprio durante promozioni e picchi → tariamo buffer, connessioni e cache e introduciamo Redis dove alleggerisce davvero il carico.
  • I backup girano ogni notte ma nessuno ha mai provato un restore → li ripristiniamo su un ambiente separato e misuriamo i tempi reali di recupero.
  • L’upgrade di versione è rimandato da anni per paura di rompere tutto → lo proviamo su una copia dei dati e lo portiamo in produzione con rollback pronto.
  • Il disco si riempie e le tabelle crescono senza controllo → archiviamo lo storico, recuperiamo spazio e dove serve partizioniamo.
  • Un solo server: un guasto significa fermo totale → impostiamo replica e failover con tempi di ripresa noti e provati.
  • Tutti si collegano come root da qualunque rete → creiamo utenti con privilegi minimi, cifratura in transito e accessi ristretti.

Cosa include

  • Installazione e configurazione: setup del motore con parametri di memoria, connessioni e storage calibrati sull’hardware e sul carico previsto.
  • Tuning delle performance: analisi delle query lente, piani di esecuzione, cache e configurazione fine del database, con misure prima e dopo.
  • Indici e ottimizzazione query: revisione degli indici mancanti o ridondanti e riscrittura delle query più pesanti, insieme a chi sviluppa.
  • Replica e alta affidabilità: repliche, failover e architetture che reggono un guasto senza perdere dati né richiedere eroismi notturni.
  • Backup e ripristino testati: backup automatici e cifrati, prova di restore su ambiente separato e tempi di recupero scritti nero su bianco.
  • Migrazioni e upgrade: passaggi di versione, cambi di motore e spostamenti tra server o verso il cloud, con finestra concordata e rollback.
  • Sicurezza: utenti con privilegi minimi, cifratura in transito, accessi ristretti e superficie esposta ridotta all’indispensabile.

Stack e tecnologie

Su MySQL e MariaDB lavoriamo su InnoDB, buffer pool, slow query log e strumenti come EXPLAIN e Percona Toolkit per diagnosi e ottimizzazione. Su PostgreSQL usiamo EXPLAIN ANALYZE, autovacuum, indici B-tree, GIN e parziali, configurazione di WAL e replica streaming. Redis entra in gioco come cache, gestore di sessioni e code, con politiche di persistenza e di sfratto adatte al caso. Dove il numero di connessioni lo richiede aggiungiamo connection pooling con PgBouncer o ProxySQL, e teniamo tutto sotto osservazione con Prometheus e Grafana. I server li gestiamo su Debian e Ubuntu; quando conviene un servizio gestito, ci appoggiamo a Cloud SQL e Memorystore su Google Cloud o agli equivalenti di AWS e DigitalOcean. Tutto resta documentato e riproducibile: l’ambiente non deve dipendere dalla memoria di nessuno.

Un esempio d’intervento

Un gestionale interno su MariaDB diventava inutilizzabile negli ultimi giorni del mese, quando partivano fatturazione e reportistica: schermate bloccate e operatori fermi. Abbiamo attivato lo slow query log per una settimana e individuato una manciata di query responsabili della gran parte del carico, tra cui un report che scandiva per intero la tabella dei movimenti. Due indici composti, la riscrittura di quella query e un buffer pool ridimensionato sui dati reali hanno riportato la chiusura mensile a tempi normali, senza cambiare hardware. Nello stesso intervento abbiamo sostituito il backup notturno mai verificato con dump cifrati e un restore di prova settimanale su una macchina separata. Il cliente ora ha una procedura di ripristino scritta, provata e con una durata conosciuta.

A chi si rivolge

  • App ed e-commerce con database che rallentano sotto carico o nei momenti di picco.
  • Software house e agenzie che vogliono un riferimento tecnico sul database dietro i progetti dei clienti.
  • SaaS e gestionali con dati critici, che non possono permettersi perdite o ripristini incerti.
  • Chi ha già subìto un fermo e vuole finalmente backup verificati, replica e una configurazione chiara.

Come lavoriamo

Il primo passo è un assessment: misuriamo query lente, indici, configurazione e stato dei backup, poi consegniamo un quadro leggibile con le priorità e i costi stimati. Gli interventi procedono per passi, ognuno testato su copia dei dati prima della produzione e dentro finestre concordate. La copertura ordinaria è dal lunedì al venerdì, 10:00-18:00 , con triage per priorità: un fermo del database è un P1 e viene preso in carico entro un’ora lavorativa, come descritto nei tempi di risposta. Per il presidio continuativo molti clienti scelgono i pacchetti ore, che non scadono. Alla fine restano a te configurazioni documentate, backup provati e una procedura di ripristino che il tuo team sa eseguire anche senza di noi.

Domande frequenti

Con quali database lavorate?

Su MySQL, MariaDB, PostgreSQL e Redis, sia self-hosted su server Linux sia in versione gestita sul cloud. Scegliamo o manteniamo il motore più adatto al carico reale della tua applicazione, senza forzature commerciali.

Il mio database è lento: potete migliorare le performance?

Sì. Partiamo da slow query log e piani di esecuzione, sistemiamo indici mancanti o ridondanti e tariamo la configurazione del motore. Nella maggior parte dei casi i tempi di risposta migliorano in modo netto senza toccare l'applicazione.

Fate backup e verificate che il ripristino funzioni?

Sì, ed è il punto centrale del servizio. Configuriamo backup automatici e cifrati, poi proviamo il restore su un ambiente separato e misuriamo quanto tempo richiede: un backup vale solo se sai di poterlo riportare online in tempi certi.

Potete gestire una migrazione o un upgrade senza fermare il servizio?

Pianifichiamo ogni passaggio con una finestra concordata, un test su copia dei dati e un piano di rollback pronto. Dove possibile usiamo replica e cutover per ridurre il downtime al minimo, sempre comunicato in anticipo.

Quanto costa la gestione del database?

La tariffa oraria è unica: 75 €/ora. Per la gestione continuativa ci sono pacchetti ore senza scadenza: 5 ore a 350 €, 10 a 660 €, 20 a 1.200 €. Il preventivo è gratuito, con risposta in giornata lavorativa.

Meglio un database self-hosted o un servizio gestito in cloud?

Dipende da carico, budget e competenze interne. Un'istanza gestita - come Cloud SQL su Google Cloud - toglie di mezzo patch e failover; un database self-hosted su Debian o Ubuntu costa meno e lascia pieno controllo. Valutiamo i numeri insieme e documentiamo la scelta.

Intervenite anche di notte o nel weekend?

Con garanzia solo per i clienti che hanno un piano di reperibilità attivo, e solo per vere emergenze P1: produzione ferma, perdita di dati, incidente di sicurezza. La reperibilità è un canone mensile a posti limitati, attivabile sui sistemi che gestiamo noi e, dopo una valutazione caso per caso, anche su altri: prezzi e regole sono nella pagina Reperibilità. Senza piano la copertura è lun-ven 10:00-18:00 e l’intervento fuori orario è best effort: può capitare, ma non è garantito né esigibile. Gli interventi notturni o festivi pianificati con almeno 20 giorni di anticipo restano possibili per tutti, alla tariffa maggiorata.

Serve una mano sulla tua infrastruttura?

Raccontaci il problema: rispondiamo con una proposta chiara e un preventivo.

Contattaci →