码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • MySQL 如何统计一个数据库中每个表的数据量


    一、诉求、采用的方法及出现的问题

      在项目中,有这样一种诉求:统计数据库中每张表的数据量。

      采用的方法:测试时,采用如下 SQL 语句进行统计(其中,测试时所用的数据库名称是 testmgmdb)。

    SELECT table_rows, table_name FROM information_schema.tables WHERE TABLE_SCHEMA = 'testmgmdb';
    
    • 1

      出现的问题:语句执行成功后,查询出了该数据库下的每张表的数据量。然而,结果并不准确。

    二、查询结果不准确的原因

      MySQL 官方网站对这个问题的解释如下所示(官网链接:26.3.38 The INFORMATION_SCHEMA TABLES Table)。

    TABLE_ROWS
    The number of rows. Some storage engines, such as MyISAM, store the exact count. For other storage engines, such as InnoDB, this value is an approximation, and may vary from the actual value by as much as 40% to 50%. In such cases, use SELECT COUNT(*) to obtain an accurate count.
    TABLE_ROWS is NULL for INFORMATION_SCHEMA tables.
    For InnoDB tables, the row count is only a rough estimate used in SQL optimization. (This is also true if the InnoDB table is partitioned.)

      翻译成中文,如下所示:

    表格行
    行数。某些存储引擎(如MyISAM)存储确切的计数。对于其他存储引擎,如 InnoDB,此值是近似值,与实际值的差异可能高达 40% 到 50%。在这种情况下,请使用 SELECT COUNT(*) 来获得准确的计数。
    对于 INFORMATION_SCHEMA 表,TABLE_ROWS 为 NULL。
    对于 InnoDB 表,行数只是 SQL 优化中使用的粗略估计。(如果 InnoDB 表是分区的,也是如此。)

      针对这种情况,可以更改存储引擎(实际项目中,肯定是不太合适,因为 InnoDB 是默认的存储引擎,能支持事务、外键,并发性能也比较好),或者直接使用 SELECT COUNT(*) 语句来统计。

  • 相关阅读:
    跟着 GPT-4 从0到1学习 Golang 并发机制(一)
    基于Simulink的风电机组变桨距控制系统仿真研究
    sqli-labs关卡19(基于http头部报错盲注)通关思路
    华为数字化转型之道 方法篇 第五章 视IT为投资,用产品思维管理IT
    CS架构和BS架构的联系与区别(零基础理解)
    uniapp——组件多颜色模块展示、气泡框
    3. 双向约瑟夫问题
    设计模式实战:模版方法
    #安装es 常见报错#
    完整测试流程
  • 原文地址:https://blog.csdn.net/piaoranyuji/article/details/133709234
  • 最新文章
  • 【JVM】编译执行与解释执行的区别是什么?JVM 使用哪种方式?
    用 Hashids 优雅解决 C 端自增 ID 暴露问题
    V8引擎 精品漫游指南--Ignition篇(上) 指令 栈帧 槽位 调用约定 内存布局 基础内容
    LLVM Pass快速入门(四):代码插桩
    milkup:桌面端 markdown AI续写和即时渲染
    基于项目工程构建SBOM(软件物料清单)的研究
    鸿蒙应用开发UI基础第二节:鸿蒙应用程序框架核心解析与实操
    .NET 中如何快速实现 List 集合去重?
    扣子Coze实战:从0到1打造抖音+小红书热点监控智能体
    浅谈数据访问层
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号