下图是各个新增类直接的关系及简单描述:

1.新增文件:mysqld_thd_manager.cc  mysqld_thd_manager.h, 移除文件sql/global_threads.h

2. 新增THD管理类:Global_THD_manager, 用于管理所有已经注册的线程THD。

3. 针对每个THD,区分两种操作类型,一种是查找类,一种是操作类,分别对应基类Do_THD_Impl 及Find_THD_Impl

通过接口函数来进行调用各个子类

Global_THD_manager::do_for_all_thd_copy  先拷贝thd链表,再对拷贝后的thd执行操作

Global_THD_manager::do_for_all_thd:直接在加锁状态下,操作链表上的THD

Global_THD_manager::find_thd:根据某些条件找到对应THD对象

所有的Do_THD_Impl和Find_THD_Impl的子类,都要重载operator(),以定义对应的调用行为。

4. 从worklog拷贝过来的流程图:

mysqld main thread

|

|

init_resources(mutex,etc)

|

| – – – – – – – – – – –  – ->create signal thread

|                                                |

|                               Wait for signal

create_handlers/slaves/etc        |

|                             close_connections()

|                                                 |

join signal thread

|

cleanup_resources()

|

mysqld_exit()

相关链接:

mysql thd_MySQL 5.7: 数据库THD连接管理重构相关推荐

  1. mysql thd_MySQL 5.7: 数据库THD连接管理重构-阿里云开发者社区

    下图是各个新增类直接的关系及简单描述: 1.新增文件:mysqld_thd_manager.cc  mysqld_thd_manager.h, 移除文件sql/global_threads.h 2. ...

  2. mysql启动关闭步骤_MYSQL的连接管理与启动关闭流程

    1.mysql启动关闭流程 1.启动数据库 1.systemctl start mysqld 2./etc/init.d/mysqld start 3.mysqld_safe --defaults-f ...

  3. MySQL之慢查询日志和连接管理

    慢查询日志 定义:MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值(long_query_time(默认为10)的语句 SHOW VARIABLES LIKE '%slow_que ...

  4. mysql database.dialect_JDBC各种数据库的连接驱动及url、dialect

    1.驱动 mysql----->com.mysql.jdbc.Driver oracle----->oracle.jdbc.driver.OracleDriver sql server-- ...

  5. WordPress本地运行,PhpStudy中MySQL无法启动,数据库无法连接?

    之前的电脑安装过MySQL,若没有卸载,会出现MySQL无法启动的问题. 解决办法如下: 打开PhpStudy,更改设置中配置文件mysql.ini,修改为[mysqld]port=3307和[cli ...

  6. mysql数据库kj_Python3.7和数据库MySQL 8.0.12 数据库SQLite3连接(三)

    # SQLite3 嵌入式 数据库 python内置SQLite3 # 导入驱动 import sqlite3 # 创建自增主键的表 msql= "create table user (id ...

  7. mysql的设计模式,设计模式 – 数据库表连接的最佳设计模式

    在 Model-Driven Design中,您的应用程序中有逻辑实体,这些实体可以映射到物理数据库中的多个表.当然,您需要运行更复杂的sql来获取完整的实体,而Model类则是实现这些关系的地方. ...

  8. Linux全攻略--MySQL数据库配置与管理

    MySQL是一种精巧的,多用户和多线程的中小型SQL数据库系统,由一个服务器守护进程mysqld和很多不同的客户程序和库组成.现在形成了一个"Linux+Apache+PHP+MySQL&q ...

  9. c# 连接mysql数据库_C#连接Mysql数据库

    一. ADO.NET访问方式 程序集:Mysql.Data.dll 导入包:using MySql.Data.MySqlClient; 说明:这是MySql为 ADO.NET推出的 访问 Mysql数 ...

最新文章

  1. kosaraju算法
  2. java 启动加载顺序_Java 程序的加载运行过程 | 学步园
  3. [你必须知道的.NET]第一回:恩怨情仇:is和as
  4. Cascading——针对Hadoop MapReduce的数据处理API
  5. linux7.3安装oracle12c release2
  6. sap wm内向交货步骤_内向型人在数据科学中成功的五个有效步骤
  7. 监听器Listener
  8. iOS 获取系统相机相册
  9. 一些Gym三星单刷的比赛总结
  10. Telerik Reporting.NET,Internet或桌面程序提供交互式报告
  11. PHP连接msSQL数据库方法
  12. 固态硬盘的速度和内存的速度差距
  13. 什么是零信任--用户/应用/设备--识别/认证/权限/信任
  14. 6D Pose Estimation各方法对应的经典论文
  15. 三分钟了解LAP Framework编程框架
  16. 【无标题】文档转成二维码添加到公众号文章(Word、Excel、PPT、PDF等)
  17. jQuery与JS实现AJAX实例!(附AJAX教程、路线图)
  18. Listener refused the connection with the following error: ORA-12519, TNS:no appr
  19. word打开html显示空白,word的页面显示不正常显示不出来怎么办 word怎么恢复正常页面...
  20. 事件抽取中的“门面技术”:事件名称生成浅谈

热门文章

  1. Effective-Java 优先考虑流中无副作用的函数
  2. 希望所有计算机专业同学都知道这些老师
  3. 数据采集工作如何做?
  4. vuetify 学习第二天之v-combobox-自定义级联组件v-cascader封装
  5. McAfee EPO4.6的迁移和升级
  6. c语言 在txt文件中搜索关键词_请输入搜索关键字
  7. 【ONION勒索软件】Win10系统防护ONION勒索病毒的详细步骤
  8. vCenter6.0安装笔记
  9. Linux Redhat 7.7 IPV6静态配置
  10. Oracle使用数据泵expdp导出和impdp导入