当前位置: 首页 > news >正文

mysql 数据库空间统计sql

mysql 数据库空间统计


文章目录

  • mysql 数据库空间统计
  • 说明
  • 一、数据库存储代码
  • 二、查询某个数据库的所有表的 代码
  • 三、列出所有已经产生碎片的表
  • 总结


说明

INFORMATION_SCHEMA Table Reference 表参考

information_schema是‌MySQL中的一个特殊数据库,它存储了关于所有其他数据库的元数据信息。 这些元数据包括数据库名、表名、列的数据类型、访问权限等。通过查询information_schema,用户可以获取到关于数据库结构的详细信息,这对于数据库管理和优化非常有帮助。例如,可以通过查询information_schema来查看表的索引信息、视图定义、存储过程和函数的信息等。此外,由于information_schema中的表都是只读的,它们实际上可以被视为视图,因此用户无法直接修改这些数据,保证了元数据的完整性。‌


一、数据库存储代码

请注意
如果启用了innodb_read_only系统变量,ANALYZE TABLE可能会失败,因为它无法更新使用InnoDB的数据字典中的统计表。对于更新键分布的ANALYZE TABLE操作,即使操作更新表本身(例如,如果它是一个MyISAM表),也可能发生失败。要获取更新的分布统计信息,可以设置information_schema_stats_expiry=0。

代码如下(GB)(示例):以下 是GB的统计
查询一个实例的所有库的数据的大小总和

select coalesce(table_schema, '合计') as table_schema ,
concat(round(sum(data_length/1024/1024/1024),2),'GB') as data_length_GB, 
concat(round(sum(index_length/1024/1024/1024),2),'GB') as index_length_GB  ,
concat(round(sum(index_length/1024/1024/1024),2)+round(sum(data_length/1024/1024/1024),2),'GB')  as tal_GB 
from information_schema.tables t where table_Type='BASE TABLE'
and table_schema not in ('document','mysql','performance_schema','sys')
group by table_schema

在这里插入图片描述

代码如下(MB)(示例): MB
查询一个实例的所有库的数据的大小总和

select coalesce(table_schema, '合计') as table_schema,
concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, 
concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB  ,
concat(round(sum(index_length/1024/1024),2)+round(sum(data_length/1024/1024),2),'MB')  as tal_MB
from information_schema.tables t where table_Type='BASE TABLE'
and table_schema not in ('document','mysql','performance_schema','sys')
group by table_schema WITH ROLLUP order by round(sum(data_length/1024/1024),2) desc 

在这里插入图片描述

二、查询某个数据库的所有表的 代码

SELECTTABLE_NAME, ENGINE, VERSION, ROW_FORMAT, TABLE_ROWS, AVG_ROW_LENGTH,DATA_LENGTH, MAX_DATA_LENGTH, INDEX_LENGTH, DATA_FREE, AUTO_INCREMENT,CREATE_TIME, UPDATE_TIME, CHECK_TIME, TABLE_COLLATION, CHECKSUM,CREATE_OPTIONS, TABLE_COMMENTFROM INFORMATION_SCHEMA.TABLESWHERE table_schema = 'db_name'[AND table_name LIKE 'wild']SHOW TABLE STATUSFROM db_name[LIKE 'wild']

The following statements are equivalent:


SELECTTABLE_NAME, TABLE_TYPEFROM INFORMATION_SCHEMA.TABLESWHERE table_schema = 'db_name'[AND table_name LIKE 'wild']SHOW FULL TABLESFROM db_name[LIKE 'wild']

三、列出所有已经产生碎片的表

-- 列出所有已经产生碎片的表 ('information_schema', 'mysql'这两个库是mysql自带的库)
select 
table_schema db, 
table_name,data_free, engine,table_rows,data_length+index_length length 
from
information_schema.tables   
where 
table_schema not in ('information_schema', 'mysql') and data_free > 0
ORDER BY data_free desc 

处理表碎片

alter table gd_channel_app_retention engine=innodb;

note:这个语句处理碎片空间其实是先复制现有数据表 然后删除旧的数据表 。如果这个表占用空间巨大,还是直接迁移数据吧。

具体可以查看 mysql 帮助

https://dev.mysql.com/doc/refman/8.0/en/information-schema-tables-table.html

总结

information_schema用于存储数据库元数据,本文sql 主要是 MySQL系统库之information_schema的实现,

查询数据库结构:information_schema 可用于查询数据库、表、列、索引、外键、触发器等对象的结构信息。
权限管理:可以使用 information_schema 查询用户和权限信息,以确保正确的访问控制和权限设置。
性能优化:information_schema 提供有关索引、表大小、表引擎等性能相关信息,这对于性能优化很有帮助。
查询执行计划:可以查询 information_schema 获取查询执行计划,以了解查询如何被执行。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 一条命令安装mysql,php
  • C++——从前序与中序遍历序列构造二叉树leetcode105
  • 网络安全管理制度
  • java算法day27
  • Android13 控制设置界面 双栏显示或单栏显示
  • go语言day18 reflect反射
  • 数仓建模:DWS层该如何建设?如何设计通用数据模型?
  • 分布式相关理论详解
  • 什么是贝叶斯优化(Bayesian Optimization)?
  • 昇思 25 天学习打卡营第 24 天 | MindSpore Pix2Pix 实现图像转换
  • 50、PHP 实现选择排序
  • 分布式锁的三种实现方式:Redis、基于数据库和Zookeeper
  • C#:枚举及位标志周边知识详解(小白入门)
  • Kafka知识总结(选举机制+控制器+幂等性)
  • 在 Elasticsearch 中实现采集自动扩展
  • (ckeditor+ckfinder用法)Jquery,js获取ckeditor值
  • 《Java编程思想》读书笔记-对象导论
  • 【知识碎片】第三方登录弹窗效果
  • echarts的各种常用效果展示
  • Linux CTF 逆向入门
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Webpack 4x 之路 ( 四 )
  • 关于字符编码你应该知道的事情
  • 快速体验 Sentinel 集群限流功能,只需简单几步
  • 前端工程化(Gulp、Webpack)-webpack
  • 驱动程序原理
  • 如何借助 NoSQL 提高 JPA 应用性能
  • 入手阿里云新服务器的部署NODE
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • UI设计初学者应该如何入门?
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • 说说我为什么看好Spring Cloud Alibaba
  • ​LeetCode解法汇总2696. 删除子串后的字符串最小长度
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #{}和${}的区别?
  • #QT(一种朴素的计算器实现方法)
  • #window11设置系统变量#
  • $.ajax中的eval及dataType
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (0)Nginx 功能特性
  • (27)4.8 习题课
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (Charles)如何抓取手机http的报文
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (NSDate) 时间 (time )比较
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (四)软件性能测试
  • (五)MySQL的备份及恢复
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • (转)fock函数详解
  • (转)Scala的“=”符号简介
  • (转)大道至简,职场上做人做事做管理