Mysql统计空间增量实现方式

 更新时间:2026年05月09日 16:07:53   作者:xixingzhe2  
本文介绍了三种统计数据库每月新增空间总量的方法,包括统计所有库、指定库以及按修改时间统计,文中说明了data_length和index_length字段的意义,并推荐使用update_time进行统计,以上为个人观点,仅供参考

1、统计【所有库】每月新增空间总量

SELECT
    DATE_FORMAT(create_time, '%Y-%m') AS 月份,
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 新增总空间_MB,
    ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS 新增总空间_GB
FROM
    information_schema.tables
WHERE
    table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys') -- 排除系统库
    AND create_time IS NOT NULL -- 只统计有创建时间的表
GROUP BY
    DATE_FORMAT(create_time, '%Y-%m')
ORDER BY
    月份 DESC;

2、统计【指定库】每月新增空间

your_database 换成你的数据库名即可:

SELECT
    DATE_FORMAT(create_time, '%Y-%m') AS 月份,
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 新增空间_MB,
    ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS 新增空间_GB
FROM
    information_schema.tables
WHERE
    table_schema = 'your_database' -- 替换成你的库名
    AND create_time IS NOT NULL
GROUP BY
    DATE_FORMAT(create_time, '%Y-%m')
ORDER BY
    月份 DESC;

3、更精准:按【修改时间】统计每月增量(推荐)

create_time 是表创建时间,实际业务中更应该用 update_time(表最后修改时间) 代表每月数据增长:

SELECT
    DATE_FORMAT(update_time, '%Y-%m') AS 月份,
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 当月总占用_MB,
    ROUND(SUM(data_length + index_length) / 1024 / 1024 / 1024, 2) AS 当月总占用_GB
FROM
    information_schema.tables
WHERE
    table_schema NOT IN ('information_schema', 'mysql', 'performance_schema', 'sys')
    AND update_time IS NOT NULL
GROUP BY
    DATE_FORMAT(update_time, '%Y-%m')
ORDER BY
    月份 DESC;

4、字段含义

  • data_length:数据文件大小
  • index_length:索引文件大小
  • data_length + index_length = 表总空间
  • create_time:表创建时间
  • update_time:表最后数据更新时间

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql 使用B+树索引有哪些优势

    mysql 使用B+树索引有哪些优势

    这篇文章主要介绍了mysql 使用B+树索引有哪些优势,帮助大家更好的理解和使用MySQL数据库,感兴趣的朋友可以了解下
    2021-01-01
  • 关于MySQL的存储过程与存储函数

    关于MySQL的存储过程与存储函数

    存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集(这些SQL语句已经编译过了),它存储在数据库中,一次编译后永久有效,需要的朋友可以参考下
    2023-05-05
  • 关于MySQL报警的一次分析处理详解

    关于MySQL报警的一次分析处理详解

    这篇文章主要给大家介绍了关于MySQL报警的一次分析处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • 完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)

    完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)

    下面小编就为大家带来一篇完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 深入学习MySQL表数据操作

    深入学习MySQL表数据操作

    这篇文章主要介绍了深入学习MySQL表数据操作,基于表操作内容围绕主题展开详细介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • php中关于mysqli和mysql区别的一些知识点分析

    php中关于mysqli和mysql区别的一些知识点分析

    看书、看视频的时候一直没有搞懂mysqli和mysql到底有什么区别。于是今晚“谷歌”一番,整理一下。需要的朋友可以参考下。
    2011-08-08
  • Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份

    Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份

    由于第一次接触LINUX,花了三天时间才算有所成就,发出来希望可以给大伙带来方便
    2010-07-07
  • Mysql中新建用户及授权的方法分享

    Mysql中新建用户及授权的方法分享

    这篇文章给大家汇总介绍了Mysql中新建用户及授权的方法,首先介绍的是作者自己的项目经历,后面附上了参考文章,希望能对大家学习mysql有所帮助。
    2016-07-07
  • MySQL存储过程的优化实例

    MySQL存储过程的优化实例

    在编写MySQL存储过程的过程中,我们会时不时地需要对某些存储过程进行优化,其目的是确保代码的可读性、正确性及运行性能。本文以作者实际工作为背景,介绍了对某一个MySQL存储过程优化的整个过程。
    2016-07-07
  • MySQL视图与用户权限管理从入门到精通

    MySQL视图与用户权限管理从入门到精通

    视图是虚拟表,可动态生成数据且与基表同步,介绍其创建、删除及规则限制,用户管理方面,阐述用户信息存储、创建、删除及密码修改,还讲解数据库权限的授权与收权操作,这篇文章主要介绍了MySQL视图与用户权限管理从入门到精通的相关资料,需要的朋友可以参考下
    2026-04-04

最新评论