Mysql数据统计

1、数据表数量

-- 某个库中,有多少个表

SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '库名';SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '库名';

2、字段总量

-- 某个库,所有表的字段数累加

select
  sum(FIELD_COUNT)
from
  (
    SELECT
      TABLE_NAME,
      COUNT(COLUMN_NAME) AS FIELD_COUNT
    FROM
      INFORMATION_SCHEMA.COLUMNS
    WHERE
      TABLE_SCHEMA = '库名'
    GROUP BY
      TABLE_NAME
  ) t;
  

3、存储条数

-- 所有表的记录条数

select
  sum(TABLE_ROWS)
from
  (
    SELECT
      TABLE_NAME,
      TABLE_ROWS
    FROM
      INFORMATION_SCHEMA.TABLES
    WHERE
      TABLE_SCHEMA = '库名'
  ) t;

4、存储量

-- 所有记录的磁盘占比,数据大小;参考值,非精确值

select
  sum(mb)
from
  (
    SELECT
      TABLE_SCHEMA AS "Database",
      TABLE_NAME AS "Table",
      round(((data_length + index_length) / 1024 / 1024), 2) as mb
    FROM
      INFORMATION_SCHEMA.TABLES
    WHERE
      TABLE_SCHEMA = '库名'
  ) t;

5、综合统计

-- 数据量统计
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;

-- 总记录数
select SUM(TABLE_ROWS) from information_schema.tables where TABLE_TYPE = 'BASE TABLE';

-- 存储数据容量
select concat(round(sum(DATA_LENGTH/1024/1024/1024),2),'GB') from information_schema.tables where TABLE_TYPE = 'BASE TABLE'; 

参考文章:https://blog.csdn.net/myloverisxin/article/details/132669854

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值