Ottimizzazione tabelle | SQL & MySQL

Topic: Pubblico - Composto da 2 Posts di 2 Utenti.

07 Settembre, 2011 14:59 #1
squeezy
Utente

squeezy
Registrato: Jun, 2011
Posts: 25
Offline

Ciao volevo chiedere 2 domande:
1. usando un DB MySql su di un sito ogni quanto dovrei ottimizzare le tabelle? Oppure mi correggo, come posso accorgermene quando è necessario ottimizzare delle tabelle?
2. esiste uno script che mi permette di ottimizzare automaticaemnte tutte le tabelle senza farlo una per volta?

Grazie

08 Settembre, 2011 00:23 #2
fuser
Utente

fuser
Registrato: Aug, 2011
Posts: 86
Offline

Molto probabilmente non ne hai bisogno.
Ne hai bisogno quando le query diventano lente e/o le tabelle occupano molto spazio rispetto ai dati che contengono.

Per le tabelle MyISAM (normalmente in hosting di usano quelle), puoi controllare la tabella information_schema.TABLES, e in particolare i campi DATA_LENGTH e DATA_FREE. Dal rapporto fra questi due valori puoi capire se la tabella è frammentata (fino al 25/30% ignora pure il problema).
Le tabelle in formato FIXED necessitano di meno manutenzione (UPDATE non frammenta il file dei dati).

Sulle InnoDB, è molto meglio distruggere gli indici e ricrearli con ALTER TABLE, perchè su una tabella di grosse dimensioni può durare fino a qualche minuto, ma OPTIMIZE può durare ore, e non c'è nessun beneficio aggiuntivo.

Condividi su:

Loggati o Registrati per replicare