Определите, какая таблица берет большую часть дискового пространства в MySQL

Что состоит в том, чтобы определить самый легкий путь, какая таблица берет большую часть дискового пространства?

Препятствие: у Меня нет сервера MySQL, только файл со всеми данными (dump.sql)

5
задан alex 16 March 2010 в 09:42
поделиться

3 ответа

Если вы используете Linux, вы может сканировать файл дампа на предмет самой длинной строки, которая может (а может и не быть!) быть самой большой таблицей в зависимости от индексов, структуры и т. д., но это будет неплохим предположением, если вы не можете запустить сервер.

awk ' { if ( length > L ) { L=length ;s=$0 } }END{ print L,"\""s"\"" }' /root/sql/_common.all.301009.sql  | cut -c 1-100

Это покажет вам первые 100 символов самой длинной строки. Это может не сработать, если у вас есть, например, несколько вставок для каждой таблицы в файле дампа (с параметрами - extended-insert или - opt ).

1
ответ дан 13 December 2019 в 22:06
поделиться

Быстрое решение может заключаться в том, чтобы сделать что-то подобное для каждой таблицы в дампе:

cat dump.sql | grep -i '^INSERT INTO `table1`' | wc -c

(я надеюсь, вы используете Linux, иначе вы можете установить Cygwin для получения некоторых функциональных возможностей командной строки linux в системе Windows)

Эта команда отфильтрует операторы вставки дампа для конкретной таблицы и распечатает общее количество байтов этих отфильтрованных операторов вставки. Конечно, размер операторов вставки не совпадает с размером хранимых строк в таблице, но это может быть хорошим приближением, если вам нужно только решить, какая таблица (вероятно) самая большая.

0
ответ дан 13 December 2019 в 22:06
поделиться

Вы можете загрузить сервер MySQL , установить его на свой локальный хост, импортировать файл дампа , а затем использовать:

SELECT   table_schema, 
         table_name, 
         data_length, 
         index_length 
FROM     information_schema.tables
ORDER BY data_length DESC;
9
ответ дан 13 December 2019 в 22:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: