查看mysql数据库 数据量大小和索引数据大小方法

查看某个数据库的数据量 和索引量的大小

Java代码   收藏代码
  1. SELECT  
  2.     SUM(DATA_LENGTH)/ 1024 / 1024 + SUM(INDEX_LENGTH)/ 1024 / 1024  
  3. FROM  
  4.     information_schema. TABLES  
  5. WHERE  
  6.     TABLE_SCHEMA = 'ice_produce_cn';  

 

伦理片 http://www.dotdy.com/  

查看索引量的大小

Java代码   收藏代码
  1. SELECT  
  2.     SUM(INDEX_LENGTH)/ 1024 / 1024  
  3. FROM  
  4.     information_schema. TABLES  
  5. WHERE  
  6.     TABLE_SCHEMA = 'ice_produce_cn';  

 

 

查看数据量排名前100的表

Java代码   收藏代码
  1. select TABLE_NAME,DATA_LENGTH/ 1024 / 1024,TABLE_ROWS,ENGINE from information_schema.TABLES  
  2.  WHERE TABLE_SCHEMA = 'ice_produce_cn' order by DATA_LENGTH desc limit 100;  

 

 

查看索引数据排名前100的表

Java代码   收藏代码
  1. SELECT  
  2.     TABLE_NAME,  
  3.     (DATA_LENGTH / 1024 / 1024) ,  
  4.     (INDEX_LENGTH / 1024 / 1024) ,  
  5.     TABLE_ROWS,  
  6.     ENGINE  
  7. FROM  
  8.     information_schema.TABLES  
  9. WHERE  
  10.     TABLE_SCHEMA = 'ice_produce_cn'  
  11. ORDER BY  
  12.     DATA_LENGTH DESC,  
  13.     INDEX_LENGTH DESC  
  14. LIMIT 100;  

 


MySQL中,获取数据库表的总数据量通常不是直接计算得出的,因为大部分数据库系统都不支持这种实时统计功能。但是,你可以通过估算、SQL查询或者第三方工具来获得一个近似的值。 1. **估算**:如果你有定期更新的数据增长记录,可以基于历史增长量来估算当前数据量。 2. **SQL查询**:对于MyISAM存储引擎,有一个`MYISAM_DATA_SIZE`系统视图可以提供已分配给行和索引的磁盘空间总量,但由于这可能包括空闲空间,所以不是精确的行数。对于InnoDB等其他存储引擎,没有这样的内置视图。 对于近似行数,你可以尝试使用`SHOW TABLE STATUS LIKE 'your_table_name';`命令,它会返回`Rows`字段,但这同样可能是估计值,并且只适用于InnoDB表,因为它依赖于行级别的唯一键缓存。 3. **第三方工具**:有许多数据库管理工具,如Navicat、HeidiSQL等,它们可以直接显示表的行数,或者提供更详细的统计信息。 4. **计数所有行**:如果你能容忍一定程度的延迟,也可以选择对所有行做一次计数,例如使用`SELECT COUNT(*) FROM your_table;`,但这会在全表扫描后返回确切的行数,可能会阻塞一段时间。 请注意,以上方法均存在一定的局限性,如果需要准确的实时数据量,最好还是在业务不繁忙的时候做实际计数。如果你的数据库很大并且频繁变化,那么最好是定期刷新计数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值