В mysql узнаем объем базы данных.
mysql> SELECT table_schema `bases`, Round(Sum(data_length + index_length) / 1024 / 1024, 1) `Size in MB` FROM information_schema.TABLES GROUP BY table_schema; +--------------------+------------+ | bases | Size in MB | +--------------------+------------+ | eg_y | 939.7 | | ir_y | 925.6 | | information_schema | 0.2 | | kont_y | 908.9 | | mysql | 6.3 | | performance_schema | 0.0 | | prept | 923.9 | | obmens | 887.7 | | sys | 0.0 | | test_y | 709.8 | +--------------------+------------+ 10 rows in set (4.80 sec)
Либо если нужно подсчитать в гигабайтах индивидуально для определенной базы.
mysql> SELECT table_schema `base`, Round(Sum(data_length + index_length) / 1024 / 1024 / 1024, 1) `Size in GB` FROM information_schema.TABLES WHERE table_schema = "test_y"; +----------+------------+ | base | Size in GB | +----------+------------+ | test_y | 0.7 | +----------+------------+ 1 row in set (0.02 sec)
Добавлю, как посчитать объем таблицы в базе.
mysql> SELECT table_name AS `Tab`, Round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "test_y" AND table_name = "pow_ks"; +--------+------------+ | Tab | Size in MB | +--------+------------+ | pow_ks | 2.33 | +--------+------------+ 1 row in set (0.00 sec)
Либо если нужно посмотреть весь список таблиц с их объемом.
mysql> SELECT table_name AS `Tab`, Round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB` FROM information_schema.TABLES WHERE table_schema = "my_bas"; +-------------------+------------+ | Tab | Size in MB | +-------------------+------------+ | ad_ny | 0.03 | | ad_no_la | 130.35 | | ag | 0.06 | | ELEMENT_NAME | NULL | | search | 0.02 | | u_sort | 4.39 | | sib | 0.02 | | goods | 0.02 | | t_prop_id | 0.05 | | wishes | 0.02 | | qtionts | 250.74 | +-------------------+------------+ 11 rows in set (0.05 sec)
Если нам нужно добавить к выводу информации о таблицах какая структура у таблиц и вес индексов.
mysql> SELECT table_name AS `Tab`, Round(((data_length + index_length) / 1024 / 1024), 2) `Size in MB`,ENGINE,TABLE_ROWS,INDEX_LENGTH FROM information_schema.TABLES WHERE table_schema = "site_base"; +-------------------+------------+--------+------------+--------------+ | Tab | Size in MB | ENGINE | TABLE_ROWS | INDEX_LENGTH | +-------------------+------------+--------+------------+--------------+ | logs | 0.08 | InnoDB | 0 | 65536 | | logs_extensions | 0.02 | InnoDB | 0 | 0 | | tokens | 0.00 | MEMORY | 0 | 0 | | tokens_aggregate | 0.00 | MEMORY | 0 | 0 | | types | 0.03 | InnoDB | 0 | 16384 | | activities | 3.00 | MyISAM | 32278 | 1209344 | | utf8_conversion | 0.02 | InnoDB | 0 | 0 | | vidges | 107.49 | MyISAM | 566061 | 77364224 | | vidges_relatives | 529.17 | MyISAM | 5668228 | 189609984 | | links | 0.14 | InnoDB | 6 | 131072 | | xmap | 0.00 | MyISAM | 13 | 2048 | | sitemap | 0.00 | MyISAM | 1 | 2048 | +-------------------+------------+--------+------------+--------------+ 12 rows in set (0.00 sec)
Столбцы:
ENGINE структура таблицы.
TABLE_ROWS количества записей в таблице.
INDEX_LENGTH размер индекса в таблице (размер в байтах).
Допустим нам нужно вывести в консоли список таблиц базы с пунктом количество столбцов в них.
Если индексы в таблицах битые или их вовсе нет, то займет много времени подсчет строк.
mysql> SELECT TABLE_NAME, COUNT(*) AS COLUMNS_COUNT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = 'test_y' GROUP BY TABLE_NAME; +---------------------+---------------+ | TABLE_NAME | COLUMNS_COUNT | +---------------------+---------------+ | ad_ny | 7 | | ad_no_la | 4 | | ag | 13 | | app_password | 11 | | connec_buttons | 6 | | cloud_opt | 5 | | cache_t | 4 | | captcha | 4 | | spasibo | 8 | | goods | 2 | | t_prop_id | 3 | | wishes | 4 | | qtionts | 117 | +---------------------+---------------+ 12 rows in set (0.02 sec)
Выводим информацию по таблицам с количеством строк в них на экран.
Вывод данных о таблицах InnoDB количество строк только приблизительная оценка.
Для более точного подсчета нужно использовать COUNT(*), что может привести к нагрузке базы.
mysql> SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'barg'; +-----------------+------------+ | table_name | table_rows | +-----------------+------------+ | ad_no | 0 | | ad_no_la | 0 | | ag | 37 | | rost | 0 | | goods | 358 | | tovar_id | 0 | | wishes | 0 | +-----------------+------------+ 7 rows in set (0.02 sec)
Подсчет количество строк в таблице.
Но если индексы к таблице отсутствуют, то выполнения запроса займет какое-то время.
mysql> use test_y; Database changed mysql> SELECT COUNT(*) AS strings FROM `qtionts`; +---------+ | strings | +---------+ | 117 | +---------+ 1 row in set (0.00 sec)
Подсчет количество таблиц в базе.
mysql> SELECT COUNT(*) AS TABS FROM information_schema.tables WHERE table_schema = 'test_y'; +------+ | TABS | +------+ | 439 | +------+ 1 row in set (0.01 sec)
Вот и вся инструкция mysql узнаем объем базы.
MariaDB phpmyadmin root.
Как правильно удалять пользователя в базе.
mysql 8 правильная создания пользователя.
БЗД`эшник, привет!
Извини, что пишу этот вопрос тут, но предусмотренного для него на сайте места найти не могу.
Как подписатья на обновления на твоём сайте?
RSS не нашёл. Может ещё как-то это делается?
Прикрутил бы ты RSS? Другие БЗД`эшники, думаю, были бы тебе тоже благодарны.
Привет.
У меня нет rss, я им не пользуюсь.
А общесту адрес RSS дашь?
*обществу
(правки нет, а ошибку заметил после отправки)