专栏首页爱可生开源社区第16问:创建一张表时,MySQL 的统计表是如何变化的?

第16问:创建一张表时,MySQL 的统计表是如何变化的?

本文关键字: 统计表,debug

问题

我们知道在 MySQL 中创建一张表时,一些统计表会发生变化,比如:mysql/innodb_index_stats,会多出几行对新表的描述。

那么会变更几张表?这些统计表是如何变化的?

实验

本期我们用 MySQL 提供的 DBUG 工具来研究 MySQL 的 SQL 处理流程。

起手先造个实例

这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug:

重启一下实例,加上 debug 参数:

我们来做一两个实验,说明 DBUG 包的作用:

先设置一个简单的调试规则,我们设置了两个调试选项:

  1. d:开启各个调试点的输出
  2. O,/tmp/mysqld.trace:将调试结果输出到指定文件

然后我们创建了一张表,来看一下调试的输出结果:

可以看到 create table 的过程中,MySQL 的一些细节操作,比如分配内存 alloc_root 等

这样看还不够直观,我们增加一些信息:

来看看效果:

可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)

我们再增加一些有用的信息:

可以看到结果中增加了文件名和行号:

现在我们可以在输出中找一下统计表相关的信息:

可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。

沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些:

本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

这些技术将 MySQL 的不同方向的信息暴露出来,方便大家理解其中机制。

本文分享自微信公众号 - 爱可生开源社区(ActiontechOSS),作者:黄炎

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-17

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 技术分享 | kubernetes 环境测试部署 MySQL 的随想

    爱可生研发团队成员,负责数据库管理平台相关项目的开发和故障排查,好奇 MySQL 技术原理及各类数据库实现方案。

    爱可生开源社区
  • 新特性解读 | 从 wireshark 看 MySQL 8.0 加密连接

    爱可生 DBA 团队成员,负责项目日常问题处理及公司平台问题排查。热爱 IT,喜欢在互联网里畅游,擅长摄影、厨艺,不会厨艺的 DBA 不是好司机,didi~

    爱可生开源社区
  • 分布式 | DBLE LOAD DATA 功能实现解析

    本篇文章主要介绍 DBLE LOAD DATA 大规模数据导入功能的实现,包括方案设计、源码解读。

    爱可生开源社区
  • 聊聊MySQL系存储库

    MySQL无疑是RDMS数据库中开源、免费的扛把子,从db-engines.com排名上可以看出,除Oracle外,长期占据第二把交椅。

    歪脖贰点零
  • Confluence 6 配置 MySQL 服务器

    注意: 如果你尝试连接你的 Confluence 到一个已经存在的 MySQL 数据库服务器。我们强烈建议你按照下面描述的安装步骤在 MySQL 中运行配置步骤...

    HoneyMoose
  • MySQL技术内幕(第4版) - 杜波依斯

    由杜波依斯编著的《MySQL技术内幕(第4版)》介绍了MySQL的基础知识及其有别于其他数据库系统的独特功能,包括SQL的工作原理和MySQL API的相关知识...

    用户3157710
  • 如何在Debian 7上安装MySQL

    MySQL是一种流行的数据库管理系统,用于Web和服务器应用程序。本指南将介绍如何在Debian 7(Wheezy)的Linode上安装,配置和管理MySQL。

    Techeek
  • 年轻人为什么要学习MySQL数据库(附 MySQL 脑图)

    芋道源码
  • awesome-mysql-cn资源

    MySQL 资源列表,内容包括:分析工具、备份、性能测试、配置、部署、GUI 等。 分析工具 性能,结构和数据分析工具 Anemometer - 一个 SQL ...

    琯琯
  • MySQL的安装教程(mysql-5.5.27-winx64)

    黑泽君

扫码关注云+社区

领取腾讯云代金券