MySQL通过SHOW TABLE STATUS查看库中所有表的具体信息
有时候我们想看下指定库下所有表的使用情况,比如,查询表的Table大小,什么时候创建的,数据最近被更新的时间(即最近一笔insert/update/delete的时间)。这些信息对我们进行库表维护很有作用。
1.查询语法
SHOW TABLE STATUS [{FROM | IN} db_name] [LIKE 'pattern' | WHERE expr]
2.查询语句说明
{FROM | IN} db_name, 可选项,表示查询哪个数据库下面的表信息。
LIKE 'pattern' | WHERE expr ,可选项,可指定符合条件的表;LIKE 'pattern' 可指定表名; WHERE expr,可通过 返回输出字段like来指定符合条件的表名。
不带任何参数,表示查询的是当前库中,所以表的具体信息。
例如,以下语句为查询当前库中所以表大小为16384的表信息。
SHOW TABLE STATUS where Data_length like 16384;
此语句返回信息如下图:
3.查询结果中各列的说明
返回列 | 说明 |
Name | 表名称 |
Engine | 表的存储引擎 |
Version | 版本 |
Row_format | 行格式 |
Rows | 表中的行数。对于非事务性表,这个值是精确的,对于事务性引擎,这个值通常是估算的。 |
Avg_row_length | 平均每行的大下(字节) |
Data_length | 表的数据量(单位:字节) |
Max_data_length | 表可以容纳的最大数据量 |
Index_length | 索引占用磁盘的空间大小 |
Data_free | 标识已分配,但现在未使用的空间,并且包含了已被删除行的空间。 |
Auto_increment | 下一个Auto_increment的值 |
Create_time | 表的创建时间 |
Update_time | 表的最近更新时间 |
Check_time | 最近一次使用 check table 或myisamchk工具检查表的时间 |
Collation | 表的字符集和字符排序规则 |
Checksum | 如果启用,则对整个表的内容计算时的校验和 |
Create_options | 表创建时的其它 |
Comment | 表在创建是添加的注释说明 |
4.通过系统数据库查询
其实我们也可以通过information_schema数据库下面的tables表去查询表的具体信息。查询结果和上面的信息差不多。例如我们查询 dbtest 数据库下面的表信息
1 | select * from information_schema.tables where TABLE_SCHEMA= 'dbtest' \G; |
显示结果如下:
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库