首页 > 数据库 >mysql 5.7.x版本查看某张表、库的大小 思路方案说明

mysql 5.7.x版本查看某张表、库的大小 思路方案说明

时间:2024-11-03 19:59:22浏览次数:4  
标签:方案 5.7 张表 更新 LENGTH mysql 大小 DATA schema

@

目录

摘要

本人项目使用场景:预统计某表总大小+表今日新增大小,其中今日新增每10s刷新一次,想要的效果是表不断怼数据情况下,今日新增展示功能能动态滚动,及做到近实时查询当下表大小。
本文MYSQL版本5.7.x,本文提供两种解决方案查询某张表大小,并对每种方案使用限制条件及场景进行解析说明
如果MYSQL版本为8.x版本,则查看解决方案(本人没验证过,不清楚是否可行,需自己实践验证):https://blog.csdn.net/londa/article/details/90480266

(推荐)第一种方案:查询information_schema.TABLES的字段DATA_LENGTH

information_schema为系统表,其中TABLES表作为视图可以查看库表字段等等信息,但是它是只读的,不能进行更新、删除和插入等操作,也不能加触发器,因为它们实际只是一个视图,不是基本表,没有关联的文件。
具体案例可百度或者查看举例地址:https://www.cnblogs.com/Knight7971/p/9963299.html

使用场景

查询表大小对实时性要求不高情况下可使用,因为DATA_LENGTH字段不都是实时触发更新,表的引擎不同更新状况不同,表引擎为MYISAM会动态实时更新,表引擎为INNODB则定期更新,据说更新条件为达到表大小10%插入量才会触发更新DATA_LENGTH字段。
具体可查看官网:https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.7/en/information-schema-tables-table.html

优点:网上大多案例都是查询系统表的字段DATA_LENGTH去计算大小

缺点:DATA_LENGTH不都是实时更新的,由表引擎决定,同时DATA_LENGTH是压缩后的字节大小(及大小经过压缩后计算得到DATA_LENGTH)

第二种方案:查询information_schema.INNODB_SYS_TABLESPACES的字段FILE_SIZE

本方案参考文档:https://zhuanlan.zhihu.com/p/147269069

使用场景

网上说该方案是针对表引擎为INNODB情况下实时更新并获取表大小,该方案弥补了第一种方案表大小无法做到实时更新的场景,但是FILE_SIZE字段记录的是未经压缩的表大小,上面的DATA_LENGTH是经过压缩后的表大小,这样存在的问题就是,当表数据比较大的时候两者值会有很大的大小差距,所以要考虑清楚用哪个。
具体可查看官网:https://dev.mysql.com/doc/mysql-infoschema-excerpt/5.7/en/information-schema-innodb-sys-tablespaces-table.html

优点:针对表引擎为INNODB情况下能够实时更新并获取表大小

缺点:FILE_SIZE字段值大小为未经过压缩的表大小

(不推荐)第三种方案:禁用 innodb_stats_persistent=OFF 并启用 innodb_stats_on_metadata=ON

该方案参考文档:https://blog.csdn.net/csd753111111/article/details/100428647

网上方案网上说:

mysql命令为:show global variables like '%stats%';
结果为:

要修改某个属性可使用命令:set global innodb_stats_on_metadata=off;
说明:这种方案弊端较大,使用需谨慎。

标签:方案,5.7,张表,更新,LENGTH,mysql,大小,DATA,schema
From: https://www.cnblogs.com/bigcat26/p/18523858

相关文章

  • 定时任务频繁插入数据导致锁表问题 -> 查询mysql进程
    场景定时任务每10秒插入一批数据,由于过去频繁导致锁表,从而无法再插入数据解决方案具体查看博客:https://blog.csdn.net/weberhuangxingbo/article/details/88709556数据库中执行sql:SELECT*FROMinformation_schema.innodb_trxSELECT*FROMinformation_schema.innodb_lo......
  • mysql编写sql脚本:要求表没有主键,但是想查询没有相同值的时候才进行插入
    @目录背景说明背景说明我这里主要针对2处地方要进行增量执行sql:1.新功能需要创建一张新表结构indicator_alarm_threshold2.给菜单表和另一个表新增数据我们现在使用的是项目启动先初始化加载init-table.sql的脚本(这里面的轻易不动了,保持原结构数据),然后还有个用于后续迭......
  • 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现七
    一、前言介绍:1.1项目摘要随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势。传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速、便捷需求。这些问题不仅影响了快递服务的效率,也增加了快递员和消费者的不便。在这样的背景下......
  • 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现八
    一、前言介绍:1.1项目摘要随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势。传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速、便捷需求。这些问题不仅影响了快递服务的效率,也增加了快递员和消费者的不便。在这样的背景下......
  • MySQL学习笔记(基础语法)
    目录前言什么是MySQL数据库介绍1.关系型数据库2.开源3.跨平台支持4.性能与可扩展性5.存储引擎6.安全性7.社区与支持8.应用场景9.兼容性10.工具与接口MySQL基础语法增(INSERT)改(UPDATE)删(DELETE)查(SELECT)前言昨天忘写了,今天补更两篇,一个MySQL数据......
  • 科普文:软件架构数据库系列之【MySQL:innodb buffer pool功能特性及其关键参数】
    一、概述InnoDB的BufferPool是其存储引擎中非常重要的一个组件,它的主要功能是缓存数据和索引页,以减少磁盘I/O操作,从而提高查询性能。科普文:软件架构数据库系列之【MySQL5.7的InnoDB引擎存储结构分析:buffer+disk】_mysql5.7innodb存储引擎架构-CSDN博客科普文:软件架构......
  • 【Mysql进阶】5步轻松掌握MySQL日志查询,你真的懂了吗?
    ......
  • php毕业设计基于PHP的电子购物商城在线购物系统商城网站电子产品商城php+mysql+html计
    一、功能介绍php在线购物商城电商网站详细技术:HTML+CSS+JS+PHP+MYSQL系统分为用户和管理员两种身份用户功能如下:1.登陆注册2.查看商品详情、蛋糕资讯3.加入购物车、结算订单4.评价5.修改密码6.搜索蛋糕7.退出登录管理员功能如下:1.登录退出2.蛋糕管理(添加、修改和......
  • 基于Java+SpringBoot+Mysql实现的快递柜寄取快递系统功能实现六
    一、前言介绍:1.1项目摘要随着电子商务的迅猛发展和城市化进程的加快,快递业务量呈现出爆炸式增长的趋势。传统的快递寄取方式,如人工配送和定点领取,已经无法满足现代社会的快速、便捷需求。这些问题不仅影响了快递服务的效率,也增加了快递员和消费者的不便。在这样的背景下,快递柜......
  • 美团面试:Mysql如何选择最优 执行计划,为什么?
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......