- Размер базы данных MySQL
- Размер базы данных MySQL
- Размер базы данных в PHPAdmin
- Размер базы данных MySQL
- Размер базы данных MySQL
- Размер базы данных в Phpmyadmin
- Выводы
- MySQL шпаргалки
- Работа с бекапами
- Общие факты
- Работа с данными
- Отладка
- Как получить размеры таблиц базы данных MySQL?
- 15 ответов
- Команды MySQL в Linux
- Работа с базами, таблицами — просмотр, удаление, редактирование записей. Консоль
- Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль
- Резервные копии — создание, восстановление бд . Консоль
Размер базы данных MySQL
Сегодня базы данных используются практически везде, особенно они нужны крупным компаниям и командам разработчиков приложений. Если вы рещите сделать сайт, вы не сможете выстроить его эффективную и правильную работу без базы данных. Она понадобится для хранения динамически изменяющейся информации. Обычно это одна из самых популярных баз данных — MariaDB или MySQL.
Размер базы данных MySQL
База данных, которая установлена в Linux, проверяется простым способом. Инструкция, которую мы дальше приведем, подходит для большинства других операционных систем. Самый простой способ прикинуть сколько места занимают все базы данных — это посмотреть размер папки с файлами базы данных в системе — /var/lib/mysql:
Команда дает возможность узнать размер базы Mysql в мегабайтах. Но будет гораздо более правильно смотреть информацию о базе данных с помощью ее встроенных инструментов. Для в MySQL есть специальная таблица — Information_schema. Для начала, прежде чем использовать ее, необходимо выполнить подключение к базе данных:
SELECT table_schema AS «Имя базы данных»,
ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS «Размер в Мб»
GROUP BY table_schema;
Путем этого запроса будет выведена информация о размере базы MySQL для каждой, пользователь сможет ориентироваться и поймет, какая база сколько занимает места. Если у вас очень большой проект и большая база данных, то вы можете выводить информацию в гигабайтах:
SELECT table_schema AS «Имя базы данных»,
ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS «Размер в Гб»
GROUP BY table_schema;
Но это еще не все. Возможно, в базе данных есть ненужная информация, которая только замедляет работу системы. Мы можем посмотреть размер таблиц для каждой из баз данных. Запрос для этого будет выглядеть следующим образом:
SELECT table_name AS «Имя таблицы»,
ROUND(((data_length + index_length) / 1024 / 1024), 2) AS «Size in (MB)»
WHERE table_schema = «wpfc_options»
ORDER BY (data_length + index_length) DESC;
Информация поможет понять какая таблица сколько занимает и это уже может навести на интересные мысли.
Размер базы данных в PHPAdmin
Многие пользователи не любят или не хотят работать в терминале. Это не большая проблема, так как можно использовать Phpmyadmin для просмотра размера базы данных.
Размер каждой из таблиц базы данных вы можете посмотреть на вкладке «Структура», когда выберите базу данных для работы.
Что касается размера самой базы данных, то придется выполнить тот же запрос в интерфейсе программы на вкладке «SQL»:
Источник
Размер базы данных MySQL
В наше время базы данных используются практически везде, я уже не говорю про крупные компании и команды разработчиков приложений, даже веб-мастера, которые делают свои сайты используют базы данных для хранения динамически изменяющейся информации. Обычно это одна из самых популярных баз данных — MariaDB или MySQL.
Но сколько занимает ваша база данных? А каждая таблица? Для больших проектов эти показатели могут достигать очень больших значений. В сегодняшней статье мы поговорим о том, как узнать размер базы данных MySQL через консоль и другими способами.
Размер базы данных MySQL
Я предполагаю, что ваша база данных установлена в Linux, но большинство методов будут работать и для других операционных систем. Самый простой способ прикинуть сколько места занимают все базы данных — это посмотреть размер папки с файлами базы данных в системе — /var/lib/mysql:
du -h /var/lib/mysql
Утилита позволяет узнать размер базы Mysql в мегабайтах. Но будет гораздо более правильно смотреть информацию о базе данных с помощью ее встроенных инструментов. Для в MySQL есть специальная таблица — Information_schema. Из нее мы и будем брать данные. Но сначала подключитесь к базе данных:
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 шпаргалки
Часто, когда разрабатываешь сайт, замечаешь, как на одни и те же грабли наступают разработчики при проектировании базы данных.
Сегодня я решил опубликовать свои шпаргалки, на самые часто встречающиеся ошибки при работе с MySQL.
Работа с бекапами
Делаем бекап
mysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
Создаём структуру базы без данных
mysqldump —no-data — u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Если нужно сделать дамп только одной или нескольких таблиц
mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql
Создаём бекап и сразу его архивируем
mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Создание бекапа с указанием его даты
mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`
Заливаем бекап в базу данных
mysql -u USER -pPASSWORD DATABASE
Заливаем архив бекапа в базу
gunzip
или так
zcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
Создаём новую базу данных
mysqladmin -u USER -pPASSWORD create NEWDATABASE
Удобно использовать бекап с дополнительными опциями -Q -c -e , т.е.
mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql , где:
- -Q оборачивает имена обратными кавычками
- -c делает полную вставку, включая имена колонок
- -e делает расширенную вставку. Итоговый файл получается меньше и делается он чуть быстрее
Для просмотра списка баз данных можно использовать команду:
mysqlshow -u USER -pPASSWORD
А так же можно посмотреть список таблиц базы:
mysqlshow -u USER -pPASSWORD DATABASE
Для таблиц InnoDB надо добавлять —single-transaction, это гарантирует целостность данных бекапа.
Для таблиц MyISAN это не актуально, ибо они не поддерживают транзакционность.
Общие факты
- Полезно под каждую базу на боевом сервере создавать своего пользователя
- Кодировка базы может быть любой, если она UTF8
- В большинстве случаев лучше использовать движок InnoDB
- В php лучше забыть про сильно устаревшее расширение mysql и по-возможности использовать pdo или mysqli
- Новую копию MySQL всегда можно настроить и оптимизировать
- Без особой нужды не стоит открывать MySQL наружу. Вместо этого можно сделать проброс портов
ssh -fNL LOCAL_PORT:localhost:3306 REMOTE_USER@REMOTE_HOST
Работа с данными
Числа
- На 32-битных системах практически нет смысла ставить для типа INTEGER свойство UNSIGNED, так как такие большие числа в php не поддерживаются.
На 64-битных системах, php поддерживает большие числа, вплоть до MySQL BIGINT со знаком. - Связанные таблицы («Foreign keys») должны иметь полное сходство по структуре ключей. Т.е. если у нас на одной таблице для поля указано «INTEGER UNSIGNED DEFAULT 0 NOT NULL» то и на другой должно быть указано аналогично
- Для хранения булевых значений, нужно использовать TINYINT(1)
- А деньги лучше хранить в DECIMAL(10, 2), где первое число обозначает количество всех знаков, включая запятую, а второе — количество знаков после запятой. Итого, у нас получится что DECIMAL(10,2) может сохранить 9999999,99
Строки
- В старых версиях (до 5.0.3) VARCHAR была ограничена 255 символами, но сейчас можно указывать до 65535 символов
- Помните, что тип TEXT ограничен только 64 килобитами, поэтому что бы сохранять «Войну и Мир» пользуйтесь «LONGTEXT»
- Самая правильная кодировка для вашей БД UTF8
Не забывайте, что
- DATE, TIME, DATETIME — выводятся в виде строк, поэтому поиск и сравнение дат происходит через преобразование
- TIMESTAMP — хранится в виде UNIX_TIMESTAMP, и можно указать автоматически обновлять колонку
- Сравнивая типы данных DATETIME и TIMESTAMP, не забывайте делать преобразование типов, например:
SELECT * FROM table WHERE `datetime` = DATE(`timestamp`)
Перечисления
Отладка
- Если запросы тормозят, то можно включить лог для медленных запросов в /etc/mysql/my.cnf
- А потом оптимизировать запросы через EXPLAIN
- И наблюдать за запросами удобно через программу mytop
Пожалуйста, сообщите мне, если вы заметили неточность или есть желание поделиться советом или шпаргалкой.
Источник
Как получить размеры таблиц базы данных MySQL?
Я могу запустить этот запрос, чтобы получить размеры всех таблиц в базе данных MySQL:
Я хотел бы некоторую помощь в понимании результатов. Я ищу столы самых больших размеров.
какой столбец я должен смотреть?
15 ответов
Вы можете использовать этот запрос, чтобы показать размер таблицы (хотя нужно заменить переменные первая):
или этот запрос, чтобы перечислить размер каждой таблицы в каждой базе данных, самый большой первый:
вы можете получить имя схемы от «information_schema для» ->схемы таблицы -> «ИМЯ_СХЕМЫ колонки»
дополнительные Вы можете получить размер баз данных mysql следующим образом.
результат
это сортирует размеры (Размер дБ в МБ).
Если вы хотите, чтобы запрос, чтобы использовать текущую базу данных. просто скопируйте этот запрос. (Никаких изменений не требуется)
существует простой способ получить много информации с помощью Workbench:
щелкните правой кнопкой мыши имя схемы и выберите «инспектор схем».
в появившемся окне имеется несколько вкладок. Первая вкладка «Info»показывает приблизительную оценку размера базы данных в МБ.
вторая вкладка «таблицы» показывает длину данных и другие сведения для каждой таблицы.
Если вы используете phpmyadmin, просто перейдите к структуре таблицы
попробуйте следующую команду (замените DB_NAME С именем вашей базы данных):
для решения Drupal / drush проверьте следующий пример сценария, который будет отображать самые большие таблицы в использовании:
предположим, что имя вашей базы данных «news_alert». тогда этот запрос покажет размер всех таблиц в базе данных.
размер всех таблиц:
выход:
для конкретной таблицы:
выход:
вот еще один способ решить эту проблему с помощью командной строки bash.
for i in mysql -NB -e ‘show databases’ ; do echo $i; mysql-e «выберите table_name как ‘таблицы’, round (((data_length+index_length)/1024/1024),2) ‘Размер В МБ’ от information_schema.Таблицы, где table_schema =\ «$i\ «ORDER BY (data_length + index_length) DESC»; готово
адаптировано из ответа Чапмика к моей конкретной потребности.
укажите только имя базы данных, затем отсортируйте все таблицы в порядке убывания-от самой большой до самой маленькой таблицы внутри выбранной базы данных. Необходимо заменить только 1 переменную = имя базы данных.
другой способ показать количество строк и пробелов, занятых и упорядоченных им.
единственная строка, которую вы должны заменить в этом запросе, — «yourDatabaseName».
Источник
Команды MySQL в Linux
Ниже предоставлен список наиболее полезных и часто используемых команд MySQL с примерами.
mysql в начале строки означает, что команда выполняется после входа вMySQL.
Символ # или $ в начале строки означает, что команда выполняется из командной строки.
Что бы проверить статус сервера MYSQL выполните:
для FreeBSD:
в CentOS / RHEL:
Что бы подключиться к серверу MySQL из консоли, если сервер MySQL находится на том же хосте:
Работа с базами, таблицами — просмотр, удаление, редактирование записей. Консоль
Создать базу данных на MySQL сервере:
Показать список всех баз данных на сервере MySQL:
Отобразить все таблицы в базе данных:
Просмотреть формат таблицы в базе:
Удалить таблицу из базы:
Показать все содержимое таблицы:
Отобразить столбцы и содержимое столбцов в выбранной таблице:
Отобразить строки в определенной таблице, содержащие » whatever «:
Отобразить все записи в определенной таблице, содержащие » Bob » и телефонный номер » 3444444 :
Отобразить все записи, НЕ содержащие имя » Bob » и телефонный номер » 3444444 «, отсортированные по полю phone_number :
Показать все записи, начинающиеся с букв » bob » и телефонного номера » 3444444 » в определенной таблице:
Показать все записи, начинающиеся с букв ‘ bob » и телефонного номера » 3444444 «, ограничиваясь записями с 1-ой до 5-ой:
Использование регулярных выражений ( «REGEXP BINARY» ) для поиска записей. Например, для регистро-независимого поиска — найти все записи, начинающиеся с буквы А :
Показать все уникальные записи:
Показать количество строк в таблице:
Подсчитать количество столбцов в таблице:
Добавление колонки в базу данных:
Изменение имени столбца:
Создать столбец с уникальным именем, что бы избежать дубликатов в названиях:
Изменение размера столбца:
Удаление столбца из таблицы:
Загрузка файла CSV в таблицу:
Пользователи, пароли сервера MySQL — добавление, изменение пользователей и паролей. Консоль
Создание нового пользователя — подключение к серверу MySQL под root, переключение к базе данных, добавление пользователя, обновление привилегий:
Изменений пользовательского пароля из консоли на удаленном хосте db1.example.org :
Изменение пользовательского пароля из консоли MySQL — подключение под root, обновление пароля, обновление привилегий:
Восстановление/изменение пароля root сервера MySQL — остановка MySQL, запуск без таблиц привилегий, подключение под root, установка нового пароля, выход и перезапуск MySQL.
Set a root password if there is on root password.
Обновление пароля root:
Установка права на подключение к серверу с хоста localhost с паролем » passwd » — подключение подroot, переключение к базе данных, установка привилегий, обновление привилегий:
Установка привилегий пользователю на использование базы данных — подключение под root, переключение к базе данных, установка привилегий, обновление привилегий:
Обновление информации в базе данных:
Удаление строки в таблице:
Обновление привилегий в базе данных:
Резервные копии — создание, восстановление бд . Консоль
Создать резервную копию (dump) всех баз данных в файл alldatabases.sql :
Создать резервную копию одной базы данных в файл databasename.sql :
Создать резервную копию одной таблицы в файл databasename.tablename.sql :
Восстановление базы данных (или таблицы) из резервной копии:
Источник