как узнать размер таблицы в mysql
Как получить размеры таблиц базы данных MySQL?
Я могу запустить этот запрос, чтобы получить размеры всех таблиц в базе данных MySQL:
Я хотел бы некоторую помощь в понимании результатов. Я ищу столы самых больших размеров.
какой столбец я должен смотреть?
15 ответов
Вы можете использовать этот запрос, чтобы показать размер таблицы (хотя нужно заменить переменные первая):
или этот запрос, чтобы перечислить размер каждой таблицы в каждой базе данных, самый большой первый:
дополнительные Вы можете получить размер баз данных mysql следующим образом.
результат
это сортирует размеры (Размер дБ в МБ).
Если вы хотите, чтобы запрос, чтобы использовать текущую базу данных. просто скопируйте этот запрос. (Никаких изменений не требуется)
существует простой способ получить много информации с помощью Workbench:
щелкните правой кнопкой мыши имя схемы и выберите «инспектор схем».
в появившемся окне имеется несколько вкладок. Первая вкладка «Info»показывает приблизительную оценку размера базы данных в МБ.
вторая вкладка «таблицы» показывает длину данных и другие сведения для каждой таблицы.
Если вы используете phpmyadmin, просто перейдите к структуре таблицы
попробуйте следующую команду (замените DB_NAME С именем вашей базы данных):
для решения Drupal / drush проверьте следующий пример сценария, который будет отображать самые большие таблицы в использовании:
предположим, что имя вашей базы данных «news_alert». тогда этот запрос покажет размер всех таблиц в базе данных.
размер всех таблиц:
выход:
для конкретной таблицы:
выход:
вот еще один способ решить эту проблему с помощью командной строки bash.
адаптировано из ответа Чапмика к моей конкретной потребности.
укажите только имя базы данных, затем отсортируйте все таблицы в порядке убывания-от самой большой до самой маленькой таблицы внутри выбранной базы данных. Необходимо заменить только 1 переменную = имя базы данных.
другой способ показать количество строк и пробелов, занятых и упорядоченных им.
Размер базы данных MySQL
Но сколько занимает ваша база данных? А каждая таблица? Для больших проектов эти показатели могут достигать очень больших значений. В сегодняшней статье мы поговорим о том, как узнать размер базы данных MySQL через консоль и другими способами.
Размер базы данных MySQL
SELECT table_schema AS «Имя базы данных»,
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS «Размер в Мб»
FROM information_schema.TABLES
GROUP BY table_schema;
Запрос выведет точный размер базы MySQL для каждой из существующих баз, теперь вы можете ориентироваться что и сколько занимает. Если у вас очень большой проект и большая база данных, то вы можете выводить информацию в гигабайтах:
SELECT table_schema AS «Имя базы данных»,
ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS «Размер в Гб»
FROM information_schema.TABLES
GROUP BY table_schema;
Но это еще не все. Возможно, в базе данных есть ненужная информация, которая только замедляет работу системы. Мы можем посмотреть размер таблиц для каждой из баз данных. Запрос для этого будет выглядеть следующим образом:
SELECT table_name AS «Имя таблицы»,
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS «Size in (MB)»
FROM information_schema.TABLES
WHERE table_schema = «wpfc_options»
ORDER BY (data_length + index_length) DESC;
Данная информация помогает понять какая таблица сколько занимает и это уже может навести на интересные мысли.
Размер базы данных в Phpmyadmin
Если вы не очень любите работать в терминале, то вы всегда можете использовать Phpmyadmin для просмотра размера базы данных. Размер каждой из таблиц базы данных вы можете посмотреть на вкладке «Структура», когда выберите базу данных для работы:
Что касается размера самой базы данных, то придется выполнить тот же запрос в интерфейсе программы на вкладке «SQL»:
Выводы
В этой небольшой статье мы рассмотрели как узнать размер базы данных MySQL несколькими способами. Если у вас остались вопросы, спрашивайте в комментариях!
MySQL. Как рассчитать объём таблицы?
Если я правильно понял, то на объём(размер) таблицы, который она занимает на диске компьютера, влияет тип таблицы, тип полей и т.д.
Вопрос
Как рассчитать объём таблицы?
Есть какие-нибудь калькуляторы для этих целей?
1 ответ 1
Точно объем таблицы можно посчитать только в случае, если размер записи фиксирован. Для этого надо, чтобы:
Все поля записи имели фиксированный размер. char(50) всегда имеет размер 50 байт, в то время как varchar(50) имеет размер от 1 до 51 байт.
Запись не содержала NULL-полей.
Размеры типов можно найти в документации по MySQL.
Все остальные типы имеют фиксированный размер. INT 4 байта, это просто. CHAR(7) 7 байт. Размер NUMERIC(12, 3) посчитать сложнее, поскольку MySQL упаковывает каждые 9 десятичных цифр в 4 байта.
Каждая запись содержит служебный заголовок, который имеет размер от 5 байт. Если NULL-поле имеет значение NULL, оно не хранится в записи, просто выставляется бит в заголовке.
После того, как размер таблицы посчитан в байтах, можно прикинуть, сколько она занимает места на диске. Для скорости MySQL хранит данные большими страницами, блоками размером 4Кбайт или 8Кбайт. Если запись с заголовком занимает 100 байт, а размер страницы 4096 байт, то на странице поместится 40 записей и ещё останется 96 пустых байт на каждой странице. 400 записей займут на диске 10 страниц или 40Кбайт.
Помимо данных, таблица содержит индексы, каждый из которых тоже занимает место. Если в индексе встречаются поля типов переменного размера, сам индекс также будет переменного размера.
Не смотря на то, что точный размер таблицы определить трудно, на практике достаточно бывает оценить порядок.
Дополнительно
Когда MySQL хранит текст, то она и цифры хранит как обычные символы. Скажем, в кодировке UTF-8 все цифры занимают один байт, а русские буквы занимают 2 байта. Чтобы считать корректно, необходимо знать, какая кодировка используется для данного поля.
Тип DECIMAL хранит числа в десятичной системе, используя хитрое кодирование, чтобы упаковывать каждые 3 десятичные цифры в 10 бит (каждые 9 цифр в 4 байта).
Типы BIT(n) упаковываются вместе в достаточное количество байт. BIT(3) всегда будет занимать 1 байт, потому что меньше памяти выделить невозможно. Но два поля по BIT(3) также будут занимать 1 байт, поскольку MySQL будет хранить их вместе.
Получить размер всех таблиц в базе данных
я унаследовал довольно большую базу данных SQL Server. Кажется, он занимает больше места, чем я ожидал, учитывая содержащиеся в нем данные.
есть ли простой способ определить, сколько места на диске занимает каждая таблица?
20 ответов
Если вы используете среда SQL Server Management Studio (SSMS), вместо запуска запроса (который в моем случае вернул дубликаты строк) вы можете запустить стандартный отчет.
Примечание: уровень совместимости базы данных должен быть установлен в 90 или выше, чтобы это работало правильно. Видеть http://msdn.microsoft.com/en-gb/library/bb510680.aspx
sp_spaceused может получить информацию о дисковом пространстве, используемом таблицей, индексированным представлением или всей базой данных.
об этом сообщает информацию об использовании диска для таблицы ContactInfo.
чтобы использовать это для всех таблиц сразу:
вы также можете получить использование диска из функции стандартных отчетов SQL Server, щелкнув правой кнопкой мыши. Чтобы перейти к этому отчету, перейдите из объекта server в объект Проводник, перейдите к объекту базы данных и щелкните правой кнопкой мыши любую базу данных. В появившемся меню выберите отчеты, затем Стандартные отчеты, а затем «использование диска по разделам: [DatabaseName]».
после некоторого поиска я не смог найти простой способ получить информацию обо всех таблицах. Существует удобная хранимая процедура с именем sp_spaceused, которая возвращает все пространство, используемое базой данных. Если указано имя таблицы, оно возвращает пространство, используемое этой таблицей. Однако результаты, возвращаемые хранимой процедурой, не сортируются, поскольку столбцы являются символьными значениями.
следующий скрипт генерирует информацию, которую я ищу.
вот еще один метод: использование среда SQL Server Management Studio, в Обозреватель Объектов, перейдите в свою базу данных и выберите таблицы
открыть Подробности Обозревателя Объектов (либо клавишей F7 и будет » Вид «-> «Подробности Обозревателя Объектов»). На странице сведений обозревателя объектов щелкните правой кнопкой мыши заголовок столбца и включите столбцы, которые вы хотите хотелось бы посмотреть на странице. Вы также можете сортировать данные по любому столбцу.
вышеуказанные запросы хороши для поиска объема пространства, используемого таблицей (включая индексы), но если вы хотите сравнить, сколько пространства используется индексами в таблице, используйте этот запрос:
мы используем секционирование таблиц и имели некоторые проблемы с запросами, приведенными выше, из-за повторяющихся записей.
для тех, кому это нужно, вы можете найти ниже запрос, выполняемый SQL Server 2014 при создании отчета» использование диска по таблице». Я предполагаю, что он также работает с предыдущими версиями SQL Server.
это работает как шарм.
небольшое изменение в ответе Mar_c, так как я так часто возвращался к этой странице, упорядоченной первым большинством строк:
Это даст вам размеры и количество записей для каждой таблицы.
для получения всех размер таблицы в одной базе данных, вы можете использовать этот запрос :
и вы можете изменить его, чтобы вставить весь результат в таблицу temp и после этого выбрать из таблицы temp.
Я добавил еще несколько столбцов поверх ответа marc_s:
вот способ быстро получить размеры всех таблиц со следующими шагами:
написать данную команды T-SQL чтобы перечислить все таблицы базы данных:
теперь скопируйте список таблиц базы данных и скопируйте его в новое окно анализатора запросов
в SQL анализатор запросов, выберите из верхней панели инструментов опцию результаты в файл ( Ctrl + Shift + F ).
теперь, наконец, ударил выполнить кнопка красная отмечена сверху бар.
Базы Данных размер всех таблиц теперь хранится в файле на вашем компьютере.
расширение до @xav ответ который обрабатывал разделы таблицы, чтобы получить размер в МБ и ГБ. Протестировано на SQL Server 2008/2012 (прокомментировал строку где is_memory_optimized = 1 )
мой пост имеет отношение только к SQL Server 2000 и был протестирован для работы в моей среде.
этот код обращается к все возможные базы данных одного экземпляра, а не только одна база данных.
Я использую две временные таблицы, чтобы помочь собрать соответствующие данные, а затем сбросить результаты в одну «живую» таблицу.
возвращаемые данные: DatabaseName, DatabaseTableName, строки (в таблице), данные (размер таблицы в КБ казалось бы), запись данные (я нахожу это полезным, чтобы знать, когда я последний раз запускал скрипт).
падение этого кода-поле «данные» не хранится как int (символы » KB » хранятся в этом поле), и это было бы полезно (но не совсем необходимо) для сортировки.
надеюсь этот код поможет кому-то и экономит их время!
в случае, если вам нужно знать,rsp_DatabaseTableSizes таблица была создана с помощью:
из командной строки с помощью OSQL:
как простое расширение ответа marc_s (тот, который был принят), это настраивается для возврата количества столбцов и позволяет фильтровать:
MySQL список таблиц и их структура
Команды для работы со списком таблиц и их структурой.
список таблиц в базе
список столбцов в таблице
показать структуру таблицы в формате «CREATE TABLE»
привилегии для пользователя.
значения системных переменных
статистика по mysqld процессам
статистика по всем таблицам в базе
статистика по всем таблицам wp_ в базе
Проверка настроек кодировки
Проверка настроек кодировки
Проверка кодировки текущей базы данных
Для настройки кодировки utf8 по умолчанию
Необходимо внести следующие изменения в файл my.cnf (my.ini):
[client]
default-character-set = utf8
Информация об установленной версии pkg_info | grep mysql (FreeBSD)
добавить столбец в таблице в базе mysql
переименование столбцов в таблице
внести изменения в столбцы таблицы
В будущем, если включите innodb_file_per_table, сможете уменьшать объем tablespace путем
пересоздания таблиц сразу в InnoDB (т.к. в режиме файл-на-таблицу файл при удалении таблицы
стирается) командой
Определение размера таблицы
Показывает обьем и количество строк в таблицах MySQL.
Перемещение таблицы MySQL в другую базу
Копирование таблицы MySQL в другую базу
Копирование таблицы MySQL в другую базу с условием
Копирование необходимых столбцов таблицы MySQL в другую базу
database1— база из которой копируем
database2 — база в которую копируем
table — название таблицы
Текущее состояние кэша
Посмотреть состояние кэша можно с помощью запроса:
Мерой эффективности кэша может служить отношение Qcache_hits / (Qcache_inserts + Qcache_not_cached).
Читайте другие интересные статьи
Понравилась статья, расскажи о ней друзьям, нажми кнопку!