【一次记一句:SQL】从 information_schema.TABLES中查询数据库表中记录数据量

有时候,一张千万数据量的表,使用 count(*) 统计记录数,查不动。可以使用下述SQL来试试:

SELECT CONCAT(table_schema, '.', table_name) AS "Table Name", table_rows AS "Number of Rows", CONCAT(ROUND(data_length / (1024 * 1024 * 1024), 6), ' G') AS "Data Size", CONCAT(ROUND(index_length / (1024 * 1024 * 1024), 6), ' G') AS "Index Size", CONCAT(ROUND((data_length + index_length) / (1024 * 1024 * 1024), 6), ' G') AS "Total"
FROM information_schema.TABLES
WHERE table_schema LIKE 'infodb'
ORDER BY Total + 0 DESC;

这个SQL查询的目的是从MySQL的information_schema.TABLES视图中检索出特定数据库(在这个例子中是名为infodb的数据库)中所有表的信息,包括表名、行数、数据大小、索引大小和总大小(数据和索引的总和),并将这些信息以易于阅读的格式显示出来。

查出的结果类似于:

TableNameNumber of RowsData SizeIndex SizeTotal
infodb.pay_jnl5356381717.412125 G6.241241 G23.653366 G
infodb.user30801740.419922 G0.588455 G1.008377 G

查询语句详细解释:

1. 选择字段:

  • CONCAT(table_schema, ‘.’, table_name) AS “Table Name”: 将数据库名(table_schema)和表名(table_name)通过.连接起来,作为“Table Name”列显示。
  • table_rows AS “Number of Rows”: 直接显示表的行数,作为“Number of Rows”列。
  • CONCAT(ROUND(data_length / (1024 * 1024 * 1024), 6), ’ G’) AS “Data Size”: 将data_length(以字节为单位的数据大小)转换为GB,并保留6位小数,然后添加’ G’作为单位,作为“Data Size”列显示。
  • CONCAT(ROUND(index_length / (1024 * 1024 * 1024), 6), ’ G’) AS “Index Size”: 类似地,将索引大小(index_length)转换为GB,并显示为“Index Size”列。
  • CONCAT(ROUND((data_length + index_length) / (1024 * 1024 * 1024), 6), ’ G’) AS “Total”: 将数据大小和索引大小相加,然后转换为GB,并显示为“Total”列。

2. 筛选条件:

  • WHERE table_schema LIKE ‘infodb’: 只选择table_schema字段值为infodb的记录,即只查询infodb数据库中的表。

3. 排序:

  • ORDER BY Total + 0 DESC;: 这里通过Total + 0(实际上是对Total列进行隐式类型转换,确保它可以用于排序)来按“Total”列的值降序排序。这样,总大小最大的表会首先显示。

注意:table_rows字段在某些情况下可能不是一个完全准确的行数,因为它是一个估计值,特别是对于使用了InnoDB存储引擎的表。如果需要精确的行数,可能需要使用其他方法,如COUNT(*)查询。

此外,这个查询假设数据库服务器有足够的权限来访问information_schema.TABLES视图。如果没有,查询将失败。


以上就是 从 information_schema.TABLES中查询数据库表中记录数据量 的全部内容,感谢阅读!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/48320.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

uniapp小程序项目解决键盘问题

1. 点击输入框,使页面不上移,并实现软键盘弹出。 步骤: 1. 使用adjust-position属性,禁止页面上移; 2. 但此时如果输入框在底部,当点击输入时,键盘会弹起,这时候需要动态移动输入框的…

matlab中plot的一些用法

文章目录 一、基本用法二、绘制多个数据集三、设置线型、颜色四、添加标题和标签五、添加图例六、设置轴范围七、绘制网格八、 在同一图中绘制多个子图九、绘制带误差条的图十、绘制半对数图和对数图十一、绘制填充区域图十二、综合案例 一、基本用法 x 0:0.1:10; y sin(x);…

技术成神之路:设计模式(八)责任链模式

介绍 责任链模式(Chain of Responsibility Pattern)是一种行为设计模式,它允许多个对象依次处理请求,避免请求的发送者和接收者之间的显式耦合。该模式通过将多个可能处理请求的对象连接成一条链,并沿着这条链传递请求…

【乐吾乐2D可视化组态编辑器】切换画面

切换画面 乐吾乐2D可视化组态编辑器demo:https://2d.le5le.com/ 方式1:open切换 推荐使用meta2d.open切换新画面 const pen {name: "rectangle",text: "矩形",x: 100,y: 100,width: 100,height: 100,events: [{name: "c…

Cadence23导入板框时的疑难杂症

1.为啥导入板框之后元器件找不到了呢? 因为导入板框的时候没有勾选 增加量 ,导致导入的板框新建了一个文件: 2.导入板框之后3D显示还是不没有导入呀? 那是因为导入的板框还带有铜皮属性,需要change命令把其换为板框…

【算法】算法模板

算法模板 文章目录 算法模板简介数组字符串列表数学树图动态规划 简介 博主在LeetCode网站中学习算法的过程中使用到并总结的算法模板,在算法方面算是刚过初学者阶段,竞赛分数仅2000。 为了节省读者的宝贵时间,部分基础的算法与模板未列出。…

Springboot 3.x - Reactive programming (2)

三、WebFlux Blocking Web vs. Reactive Web Blocking Web (Servlet) and Reactive Web (WebFlux) have significant differences in several aspects. 1. Front Controller Servlet-Blocking Web: Uses DispatcherServlet as the front controller to handle all HTTP req…

51单片机13(动态数码管实验)

一、数码管动态显示原理 1、动态显示是利用减少段选线,分开位选线,利用位选线不同时选择通断,改变段选数据来实现的。 (1)多位数码管依然可以进行静态的一个显示,那么在前面我们介绍静态数码管的时候&…

Nginx(详解以及如何使用)

目录 1. 什么是Nginx? 2. 为什么使用nginx? 3. 安装nginx 3.1 安装nginx的依赖插件 3.2 下载nginx 3.3 创建一个目录作为nginx的安装路径 3.4 解压 3.5 进入解压后的目录 3.6 指定nginx的安装路径 3.7 编译和安装nginx 3.8 启动nginx 3.9 访问nginx 4. ngin…

【python】Python中闭包的是什么,闭包原理分析与应用实战

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

MongoDB教程(十四):MongoDB查询分析

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 文章目录 引言一、查询分…

队列及其应用(用栈实现队列 力扣225)

队列概念 队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头 队列的代码…

09.甜甜圈旋转加载动画 计数器

甜甜圈旋转加载动画 创建一个甜甜圈形状的旋转加载动画,可用于指示内容的加载。 为整个元素使用半透明的 border。排除一侧,它将作为甜甜圈的加载指示器。定义并使用合适的动画,使用 transform: rotate() 旋转元素。<body><div class="donut"></div&…

Python print() 格式化输出

Python print{} 格式化输出 1. print()2. 浮点数 (float)References 1. print() 传递给函数的值称为参数。 引号没有打印在屏幕上&#xff0c;它们只是表示字符串的起止&#xff0c;不是字符串的一部分。可以用这个函数在屏幕上打印出空行&#xff0c;只要调用 print() 就可以…

基于JAVA+SpringBoot+Vue+uniapp的微信小程序点餐平台

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 点餐小程序主要为小个…

java——类变量和类方法;代码块;内部类

一、类变量和类方法 1.1、类变量 1.1.1、类变量内存布局(静态变量放在哪里&#xff1f;) 1、JVM7及以前的近代变量放在方法区中&#xff1b;JVM8以后的静态变量放在堆中 2、不管static变量在哪里&#xff0c;共识&#xff1a; 1&#xff09;Static变量是同一个类所有对象共…

昇思25天学习打卡营第17天 | 基于MindSpore实现BERT对话情绪识别

昇思25天学习打卡营第17天 | 基于MindSpore实现BERT对话情绪识别 文章目录 昇思25天学习打卡营第17天 | 基于MindSpore实现BERT对话情绪识别BERT模型对话情绪识别BERT模型的文本情绪分类任务数据集数据下载数据加载与预处理 模型构建模型验证模型推理 总结打卡 BERT模型 BERT&…

【Espressif-ESP32S3】【VScode】安装【ESP-IDF】插件及相关工具链

一、ESP-IDF简介 二、VScode安装ESP-IDF插件 三、安装ESP-IDF、ESP-IDF-Tools以及相关工具链 四、测试例程&编译烧录 五、IDF常用指令 资料下载&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/15Q2rl2jpIaKfj5rATkYE6g?pwdGLNG 提取码&#xff1a;GLNG 一、ESP-…

opencv—常用函数学习_“干货“_7

目录 十九、模板匹配 从图像中提取矩形区域的子像素精度补偿 (getRectSubPix) 在图像中搜索和匹配模板 (matchTemplate) 比较两个形状&#xff08;轮廓&#xff09;的相似度 (matchShapes) 解释 二十、图像矩 计算图像或轮廓的矩 (moments) 计算图像或轮廓的Hu不变矩 (H…

IntelliJ IDEA 2024.1 最新变化 附问卷调查 AI

IntelliJ IDEA 2024.1 最新变化 问卷调查项目在线AI IntelliJ IDEA 2024.1 最新变化关键亮点全行代码补全 Ultimate对 Java 22 功能的支持新终端 Beta编辑器中的粘性行 AI AssistantAI Assistant 改进 UltimateAI Assistant 中针对 Java 和 Kotlin 的改进代码高亮显示 Ultimate…