面试官:MySQL怎么查看表占用空间大小
16lz
2021-01-22
前言
在mysql中有一个默认的数据表information_schema,information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。
再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在information_schema表里面,所以请勿删改此表。整理了一份328页MySQLPDF文档
代码
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,查看表使用大小
select concat(round(sum(data_length/1024/1024),2),’MB’) as data from tables where table_schema=’DB_Name’ and table_name=’Table_Name’;
网上找的一个,亲测可用:
先进去MySQL自带管理库:information_schema
然后查询 data_length,index_length
你自己的数据库名:dbname
- 你自己的表名:tablename
mysql> use information_schema;Database changedmysql> 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.查看所有数据库容量大小
selecttable_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.tablesgroup by table_schemaorder by sum(data_length) desc, sum(index_length) desc;
2.查看所有数据库各表容量大小
selecttable_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.tablesorder by data_length desc, index_length desc;
3.查看指定数据库容量大小
例:查看mysql库容量大小
selecttable_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.tableswhere table_schema='mysql';
4.查看指定数据库各表容量大小
例:查看mysql库各表容量大小
selecttable_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.tableswhere 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_MBfrom 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_MBfrom tableswhere table_schema='passport_v2' and table_name='tb_user_info';
-- 2128.94MB 285.00MB 整理了一份328页MySQLPDF文档
©著作权归作者所有:来自51CTO博客作者程序白楠楠的原创作品,如需转载,请注明出处,否则将追究法律责任好知识,才能预见未来
赞赏
0人进行了赞赏支持
更多相关文章
- 1.5 万 Star!界面酷炫、简单易用的数据库开源客户端
- LeetCode数据库篇|181超过经理收入的员工
- LeetCode数据库篇|175组合两个表
- 一道Leetcode数据库题的三种解法|文末送书
- python数据分析——如何用python连接远程数据库
- 数据工程师面试必备——Python与数据库的那些事
- PHP操作Redis数据库常用方法(总结)
- 关于PHP+jQuery-ui拖动浮动层排序并保存到数据库实例
- 浅谈PHP连接MySQL数据库的三种方式