第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效]

第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效]本文关键字: 统计表,debug 问题 我们知道在 MySQL 中创建一张表时,一些统计表会发生变化,比如:mysql/innodb_index_stats,会多出几行对新表的描述。 那么会变更几张…

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

第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效]

本文关键字: 统计表,debug

问题

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

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

实验

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

起手先造个实例 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 这里得稍微改一下实例的启动文件 start,将 CUSTOM_MYSQLD 改为 mysqld-debug: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 重启一下实例,加上 debug 参数: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 我们来做一两个实验,说明 DBUG 包的作用: 先设置一个简单的调试规则,我们设置了两个调试选项:

  1. d:开启各个调试点的输出
  2. O,/tmp/mysqld.trace:将调试结果输出到指定文件 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 然后我们创建了一张表,来看一下调试的输出结果: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 可以看到 create table 的过程中,MySQL 的一些细节操作,比如分配内存 alloc_root 等

这样看还不够直观,我们增加一些信息: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 来看看效果: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 可以看到输出变成了调用树的形式,现在就可以分辨出 alloc_root 分配的内存,是为了解析 SQL 时用的(mysql_parse)

我们再增加一些有用的信息: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 可以看到结果中增加了文件名和行号: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 现在我们可以在输出中找一下统计表相关的信息: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 可以看到 MySQL 在这里非常机智,直接执行了一个内置的存储过程来更新统计表。

沿着 que_eval_sql,可以找到其他类似的统计表,比如下面这些: 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效] 本次实验中,我们借助了 MySQL 的 DBUG 包,来让 MySQL 将处理过程暴露出来。MySQL 中类似的技术还有不少,比如 performance_schema,OPTIMIZER_TRACE 等等。

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


关于 MySQL 的技术内容,你们还有什么想知道的吗?赶紧留言告诉小编吧! 第16问:创建一张表时,MySQL 的统计表是如何变化的?[亲测有效]

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7176.html

(0)
上一篇 2023-03-25 17:00
下一篇 2023-03-25

相关推荐

  • Python中文词频统计

    Python中文词频统计在文本处理中,词频统计是一个重要而常见的任务,可以用于文本分类、数据挖掘等应用。而Python作为一门广泛应用于文本处理的语言,其丰富的开源库和工具使得中文文本处理变得更加简单而高效。

    2024-09-13
    27
  • PyCharm终端位置

    PyCharm终端位置PyCharm是一款功能强大的Python IDE,它提供了很多方便开发的工具和功能。在PyCharm中,终端也是一个非常重要的工具,它可以方便地执行命令,例如调试Python程序、运行pip命令等。

    2024-07-21
    38
  • 微课程 | 第二课《Docker 安装方式介绍》

    微课程 | 第二课《Docker 安装方式介绍》微课程 | 第二课《Docker 安装方式介绍》视频 https://v.youku.com/v_show/id_XNDQ0NDUzNjkxNg==.html?spm=a2hzp.8244740.0…

    2022-12-21
    145
  • 使用python定义结构体

    使用python定义结构体Python语言在广泛应用的同时,也经常被人诟病其语法的灵活性和数据结构定义的不直观。Python在内存分配和对象操作方面对C语言有很大的优势。但是,Python的基础数据结构,比如tuple、list、set等,在处理复杂的结构体时显得十分不便。

    2024-07-21
    26
  • 详细记录一次stampstime字段引起pxc集群脑裂[亲测有效]

    详细记录一次stampstime字段引起pxc集群脑裂[亲测有效]事故回顾 运维执行导入sql,导入后收到master2和master3节点宕机的报警; 检查集群状态发现master1进入初始化模式,无法读写;master2和master3已经下线; 处理方法 分别

    2023-05-02
    148
  • 一键部署—-mysql5.6–jue

    一键部署—-mysql5.6–jue一键部署—-mysql5.6–jue#!/bin/bashcd/var/runrm-rfyum.pidread-p

    2023-04-05
    164
  • Python Time格式化使用指南

    Python Time格式化使用指南时间是人类和计算机通信的重要媒介,在计算机编程中,时间的处理是不可避免的。Python的time模块提供了操作时间的方法,包括获取当前时间、时间戳和时区等。在实际应用中,将时间按照一定的格式进行展示和处理也很重要。本篇文章将详细介绍Python中如何使用time模块对时间进行格式化处理。

    2024-07-01
    45
  • sql语句proc_最简单的手工视频

    sql语句proc_最简单的手工视频CREATE PRoc [名字] { @参数 数据类型, @参数 数据类型 OUTPUT[输入] } AS begin select INSERT UPDATE (SQL) end –基本语句快 –

    2023-01-30
    151

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注