IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:information_schema

共 2 篇相关文章

IT 累计浏览 2,583

给MySQL的show table status结果做过滤

这篇文章解决了一个实际开发中常遇到的问题:MySQL的 `SHOW TABLE STATUS` 命令无法直接过滤结果。通常我们只能看到整个数据库所有表的状态列表,当表数量很多时,想快速筛选出特定状态的表(比如查看哪些表引擎是InnoDB、或者估算哪些表可能占用空间较大)就显得非常不便。 作者从这个痛点出发,分享了两种实用的解决方案。一种是借助脚本或自定义工具,先获取全部结果再在本地进行过滤;另一种则更为巧妙,直接通过查询系统信息库(`information_schema`)中的 `TABLES` 表,并结合 `SELECT` 语句的 `WHERE` 子句,来实现类似 `SHOW TABLE STATUS` 且支持灵活过滤的效果。 文章清晰地对比了原始命令的局限性与替代方案的灵活性,特别是通过 `information_schema` 查询的方法,不仅能模拟出表状态信息,还能根据任意字段进行条件筛选,功能更加强大。对于需要管理大量数据表的DBA或开发人员来说,这是一个能直接提升运维效率的小技巧。

IT 累计浏览 2,598

思考mysql内核之初级系列5---information_schema不是innodb数据字典

上次聊到InnoDB缓冲区里的页被数据字典使用后,作者这次想搞清楚一个关键问题:information_schema里的那些表,和真正的InnoDB数据字典到底是不是一回事。 文章的核心结论可能颠覆一些常识——它们并不是一回事。作者通过分析指出,`information_schema` 中的InnoDB相关表,更像是一层动态生成的“视图”,其数据来源于InnoDB引擎在运行时填充到内存中的结构。而真正的InnoDB数据字典,则是引擎内部用于管理表、索引、列等定义的持久化存储结构,其核心页面直接缓存在Buffer Pool中。 两者的关键差异在于数据来源与更新机制。当你查询 `information_schema` 时,触发的可能是对内存数据结构的读取,甚至可能引发代价高昂的表扫描(比如 `information_schema.tables`)。而直接理解InnoDB内部的字典存储,则关乎对引擎元数据管理的根本认识。这对于理解DDL操作的性能开销、监控数据库真实状态,乃至进行深度的性能调优都至关重要。 所以,这篇文章引导读者区分数据库的“外部视图”与“内部真相”。作者从缓冲区观察出发,层层剖析,最终落脚于一个根本性认知:要真正懂MySQL,得看透这层由 `information_schema` 提供的、便于查询但并非元数据本身映射。