面試官:MySQL怎麼查看錶佔用空間大小

前言

在mysql中有一個默認的數據表information_schema,information_schema這張數據表保存了MySQL服務器全部數據庫的信息。如數據庫名,數據庫的表,表欄的數據類型與訪問權限等。mysql

再簡單點,這臺MySQL服務器上,到底有哪些數據庫、各個數據庫有哪些表,每張表的字段類型是什麼,各個數據庫要什麼權限才能訪問,等等信息都保存在information_schema表裏面,因此請勿刪改此表。整理了一份328頁MySQLPDF文檔sql

代碼

1,切換數據庫數據庫

use information_schema;

2,查看數據庫使用大小服務器

select concat(round(sum(data_length/1024/1024),2),’MB’) as data from tables where table_schema=’DB_Name’ ;

3,查看錶使用大小ide

select concat(round(sum(data_length/1024/1024),2),’MB’) as data from tables where table_schema=’DB_Name’ and table_name=’Table_Name’;

網上找的一個,親測可用:code

  • 先進去MySQL自帶管理庫:information_schemaorm

  • 而後查詢 data_length,index_length索引

  • 你本身的數據庫名:dbnametoken

  • 你本身的表名:tablename
    mysql> use information_schema;
    Database changed
    mysql> select data_length,index_length
    -> from tables where
    -> table_schema='dbname'
    -> and table_name = 'tablename';
    +-------------+--------------+
    | data_length | index_length |
    +-------------+--------------+
    | 166379520 | 235782144 |
    +-------------+--------------+
    row in set (0.02 sec)
    mysql> select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB,
    -> concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB
    -> from tables where
    -> table_schema='dbname'
    -> and table_name = 'tablename';
    +----------------+-----------------+
    | data_length_MB | index_length_MB |
    +----------------+-----------------+
    | 158.67MB | 224.86MB |
    +----------------+-----------------+
    row in set (0.03 sec)

    1.查看全部數據庫容量大小

select
table_schema as '數據庫',
sum(table_rows) as '記錄數',
sum(truncate(data_length/1024/1024, 2)) as '數據容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
from information_schema.tables
group by table_schema
order by sum(data_length) desc, sum(index_length) desc;

2.查看全部數據庫各表容量大小

select
table_schema as '數據庫',
table_name as '表名',
table_rows as '記錄數',
truncate(data_length/1024/1024, 2) as '數據容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
order by data_length desc, index_length desc;

3.查看指定數據庫容量大小

例:查看mysql庫容量大小文檔

select
table_schema as '數據庫',
sum(table_rows) as '記錄數',
sum(truncate(data_length/1024/1024, 2)) as '數據容量(MB)',
sum(truncate(index_length/1024/1024, 2)) as '索引容量(MB)'
from information_schema.tables
where table_schema='mysql';

4.查看指定數據庫各表容量大小

例:查看mysql庫各表容量大小

select
table_schema as '數據庫',
table_name as '表名',
table_rows as '記錄數',
truncate(data_length/1024/1024, 2) as '數據容量(MB)',
truncate(index_length/1024/1024, 2) as '索引容量(MB)'
from information_schema.tables
where table_schema='mysql'
order by data_length desc, index_length desc;

select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB
from tables 
where table_schema='passport' and table_name='tb_user_info';

-- 569.98MB 141.98MB

select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB
from tables
where table_schema='passport_v2' and table_name='tb_user_info';

-- 2128.94MB 285.00MB 整理了一份328頁MySQLPDF文檔

相關文章
相關標籤/搜索