MySQL查看表占用空间大小

本文介绍如何使用MySQL内置的information_schema数据库来查询特定数据库中某个表的数据大小和索引大小,并展示了将字节单位转换为更易读的MB单位的方法。
[sql]  view plain copy
  1. //先进去MySQL自带管理库:information_schema   
  2. //自己的数据库:dbwww58com_kuchecarlib   
  3. //自己的表:t_carmodelparamvalue  
  4.   
  5. mysql> use information_schema;  
  6. Database changed  
  7. mysql> select data_length,index_length  
  8.     -> from tables where  
  9.     -> table_schema='dbwww58com_kuchecarlib'  
  10.     -> and table_name = 't_carmodelparamvalue';  
  11. +-------------+--------------+  
  12. | data_length | index_length |  
  13. +-------------+--------------+  
  14. |   166379520 |    235782144 |  
  15. +-------------+--------------+  
  16. 1 row in set (0.02 sec)  
  17.   
  18. mysql> select concat(round(sum(data_length/1024/1024),2),'MB'as data_length_MB,  
  19.     -> concat(round(sum(index_length/1024/1024),2),'MB'as index_length_MB  
  20.     -> from tables where  
  21.     -> table_schema='dbwww58com_kuchecarlib'  
  22.     -> and table_name = 't_carmodelparamvalue';  
  23. +----------------+-----------------+  
  24. | data_length_MB | index_length_MB |  
  25. +----------------+-----------------+  
  26. | 158.67MB       | 224.86MB        |  
  27. +----------------+-----------------+  
  28. 1 row in set (0.03 sec)  
MySQL 中查询的存储空间大小,可以使用 `information_schema` 数据中的 `TABLES` 。该提供了有关数据中所有的数据长度、索引长度等信息。以下是几种常用的查询方式: ### 查询某个数据中所有的存储空间大小 以下查询将列出指定数据中每个的数据容量和索引容量: ```sql SELECT TABLE_NAME AS "名", CONCAT(TRUNCATE(SUM(DATA_LENGTH) / 1024 / 1024, 2), ' MB') AS "数据容量", CONCAT(TRUNCATE(SUM(INDEX_LENGTH) / 1024 / 1024, 2), ' MB') AS "索引容量" FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' GROUP BY TABLE_NAME; ``` ### 查询单个的存储空间大小 如果需要查询某个具体的存储空间,可以在上述查询基础上添加 `TABLE_NAME` 条件: ```sql SELECT TABLE_NAME AS "名", CONCAT(TRUNCATE(SUM(DATA_LENGTH) / 1024 / 1024, 2), ' MB') AS "数据容量", CONCAT(TRUNCATE(SUM(INDEX_LENGTH) / 1024 / 1024, 2), ' MB') AS "索引容量" FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name'; ``` ### 查询所有数据中各的存储空间大小 如果需要查看所有数据中每个的存储空间大小,可以去掉 `WHERE` 条件中的数据名,并按 `TABLE_SCHEMA` 和 `TABLE_NAME` 分组: ```sql SELECT TABLE_SCHEMA AS "数据名", TABLE_NAME AS "名", CONCAT(TRUNCATE(SUM(DATA_LENGTH) / 1024 / 1024, 2), ' MB') AS "数据容量", CONCAT(TRUNCATE(SUM(INDEX_LENGTH) / 1024 / 1024, 2), ' MB') AS "索引容量" FROM information_schema.TABLES GROUP BY TABLE_SCHEMA, TABLE_NAME; ``` ### 查询数据总存储空间大小 如果需要查看某个数据的总存储空间(包括所有的数据和索引),可以使用以下查询: ```sql SELECT TABLE_SCHEMA AS "数据名", CONCAT(TRUNCATE(SUM(DATA_LENGTH) / 1024 / 1024, 2), ' MB') AS "数据总容量", CONCAT(TRUNCATE(SUM(INDEX_LENGTH) / 1024 / 1024, 2), ' MB') AS "索引总容量" FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'your_database_name' GROUP BY TABLE_SCHEMA; ``` ### 查询所有数据的总存储空间大小 如果需要查看所有数据的总存储空间,可以去掉 `WHERE` 条件并按 `TABLE_SCHEMA` 分组: ```sql SELECT TABLE_SCHEMA AS "数据名", CONCAT(TRUNCATE(SUM(DATA_LENGTH) / 1024 / 1024, 2), ' MB') AS "数据总容量", CONCAT(TRUNCATE(SUM(INDEX_LENGTH) / 1024 / 1024, 2), ' MB') AS "索引总容量" FROM information_schema.TABLES GROUP BY TABLE_SCHEMA; ``` 通过这些查询,可以清晰地了解 MySQL 数据中各个的存储空间使用情况[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值