domanda semplice, ma mi sta tormentando da un po 'ora ....In MySQL cosa significa "Overhead", cosa c'è di male e come risolverlo?
cos'è "sovraccarico" in MySQL e dovrei essere preoccupato?
fa clic su "Ottimizza tabella" lo aggiusta per davvero?
domanda semplice, ma mi sta tormentando da un po 'ora ....In MySQL cosa significa "Overhead", cosa c'è di male e come risolverlo?
cos'è "sovraccarico" in MySQL e dovrei essere preoccupato?
fa clic su "Ottimizza tabella" lo aggiusta per davvero?
Sembra che il sovraccarico sia lo spazio su disco temporaneo utilizzato dal database per eseguire alcune query, quindi è necessario preoccuparsi solo se questo diventa veramente elevato.
È possibile confrontare "Ottimizzazione del tavolo" con la deframmentazione del disco rigido.
cito:
Ogni database, nel corso del tempo, richiederà qualche forma di manutenzione per tenerlo a una prestazione di livello ottimale. L'eliminazione delle righe cancellate, la risquinamento, la compressione, la gestione dei percorsi dell'indice , la deframmentazione, ecc. È ciò che è noto come OTTIMIZZAZIONE in mysql e altri termini in altri database. Ad esempio, IBM DB2/400 lo chiama MEMORIZZAZIONE DEL FILE FILE RILEVANTE.
È un po 'come cambiare l'olio in l'auto o ottenere una messa a punto. È possibile che pensi davvero di non doverlo fare, ma con il così facendo la tua macchina funziona molto meglio, ottieni una migliore distanza in miglia del gas, ecc. Un'auto che ottiene molto chilometraggio richiede più spesso le ottimizzazioni . Un database che utilizza pesantemente richiede lo stesso. Se si eseguono molte operazioni UPDATE e/o DELETE e, in particolare, se le tabelle hanno lunghezze variabili colonne (VARCHAR, TEXT, ecc.), È necessario il per essere ottimizzato.
Se si sta parlando della cosa che phpMyAdmin
chiamate overhead
, allora è dimensione effettiva di una tabella di file di dati rispetto alle dimensioni ideali dello stesso file di dati (come se quando appena ripristinato dal backup).
Per motivi di prestazioni, MySQL
non compatta i file di dati dopo aver eliminato o aggiornato le righe.
Questo overhead
non è valido per la scansione della tabella, i. e. quando la tua query deve essere eseguita su tutti i valori della tabella, avrà bisogno di guardare più spazio vuoto.
È possibile liberarsi di overhead
eseguendo OPTIMIZE TABLE
che comprime la tabella e gli indici.
La dimensione della documentazione di mysql dice "OPTIMIZE TABLE dovrebbe essere usato se hai cancellato una grande parte di una tabella o se hai fatto molte modifiche a una tabella con righe di lunghezza variabile", questo è il mio caso, grazie :) – boclodoa
L'overhead è Data_free di una tabella, ovvero Il numero di byte allocati ma non utilizzati. Possiamo trovarlo tramite il comando SQL STATUS TABELLA VISUALIZZAZIONE. È lo spazio libero nella dimensione allocata per il tuo tavolo.
L'ottimizzazione della tabella può essere molto problematica. Ad esempio se la tabella viene utilizzata pesantemente su un sito.
http://dev.mysql.com/doc/refman/5.1/en/optimize-table.html
Dopo l'eliminazione di un gran parte di una tabella MyISAM o archivio, o fare molte modifiche per un MyISAM o MEDIA tabella con righe di lunghezza variabile (tabelle contenenti VARCHAR, VARBINARY, BLOB o TEXT colonne). Le righe eliminate vengono mantenute in un elenco collegato e le successive operazioni INSERT riutilizzano le vecchie posizioni di riga. <
Credo di aver confermato questo comportamento. E certamente sarebbe davvero molto utile.
@Jasper Le tabelle sono completamente bloccate (impossibile leggere/scrivere) durante la durata dell'ottimizzazione? – Pacerier
Da dove proviene quella citazione? Sto trovando molti risultati su Google. –
come facciamo a sapere quali sono le cause generali? – mahen3d