2013-03-30 15 views
11

Appena concluso con il calcolo della dimensione della tabella MySQL in GB con la seguente query.come ottenere la dimensione della riga mysql in GB

SELECT (+ data_length index_length)/potenza (1024,3) tablesize_gb FROM WHERE INFORMATION_SCHEMA.TABLES schema_tabella = 'db' e table_name = 'tablename'

è possibile ottenere il dimensione di una riga MySQL in GB.

Oppure come ottenere la dimensione della riga media per la tabella in GB.

+0

Che assomiglia a un modo ragionevole per farlo. – nneonneo

+0

@nneonneo Dalla query precedente sto ricevendo la dimensione della tabella, ma ho bisogno di ottenere la dimensione della riga. – Parthi04

+0

Dividere per il numero di righe? – nneonneo

risposta

11

Per ottenere la lunghezza media delle righe (incluso l'overhead), utilizzare la colonna AVG_ROW_LENGTH in information_schema.tables.

Per quanto ne so, non c'è modo di calcolare la dimensione effettiva esatta di una singola riga specifica in MySQL.

-3

Per trovare dimensione della tabella possiamo usare qualcosa di simile ..

SELECT count(*) tables, 
     concat(round(sum(table_rows)/1000000,2),'M') rows, 
     concat(round(sum(data_length)/(1024*1024*1024),2),'G') data, 
     concat(round(sum(index_length)/(1024*1024*1024),2),'G') idx, 
     concat(round(sum(data_length+index_length)/(1024*1024*1024),2),'G') total_size, 
     round(sum(index_length)/sum(data_length),2) idxfrac 
     FROM information_schema.TABLES 
     WHERE table_name like "%table-name%" 

Trova il più grande tavolo in MySQL Database possiamo usare qualcosa di simile

SELECT CONCAT(table_schema, '.', table_name), 
     CONCAT(ROUND(table_rows/1000000, 2), 'M')         rows, 
     CONCAT(ROUND(data_length/(1024 * 1024 * 1024), 2), 'G')     DATA, 
     CONCAT(ROUND(index_length/(1024 * 1024 * 1024), 2), 'G')     idx, 
     CONCAT(ROUND((data_length + index_length)/(1024 * 1024 * 1024), 2), 'G') total_size, 
     ROUND(index_length/data_length, 2)           idxfrac 
FROM information_schema.TABLES 
ORDER BY data_length + index_length DESC 
LIMIT 10 
+2

La domanda riguardava in particolare la ricerca della dimensione della riga più grande, non quella più grande. – coderintherye

5

Hi questo potrebbe fare il trucco, abbiamo avuto un problema simile e abbiamo dovuto scoprire quali tipi di file occupano più spazio. Ecco perché qui con un gruppo da ...

SELECT groupval, (sum(length(somefield) + length(someotherfield))/1024)/1024 as "fields_size_mb" 
FROM table 
GROUP BY groupval 
ORDER BY fields_size_mb desc; 
-1
SELECT 
    table_name AS `Table`, 
    round(((data_length + index_length)/1024/1024), 2) as `Size in MB`, 
    round((AVG_ROW_LENGTH/1024), 2) as `Avg row size in KB` 
FROM information_schema.TABLES WHERE table_schema = 'your_db_name' 
ORDER BY `Size in MB` DESC 
Problemi correlati