2 mysql的purge线程知多少?

前段时间,作者分析了诸多种类的“云里雾里”的死锁状况,例如因为唯一性索引导致的死锁现象,因为操作空行而导致的死锁现象等,对mysql各种操作对数据页中的行的加锁情况基本解析完毕,但还有一类隐含地对数据行(被删除的行)的操作,就是purge线程。

purge线程的作用,是清理回滚段的同时,把被删除的行也从数据块中清除,实现真正的物理上的删除。

因此,作者就在猜想-----这个purge操作也是行操作,这类操作是否会加锁?

如果加锁,那跟用户线程的事务处理中的加锁会不会产生冲突?

如果冲突,那岂不是很难搞定,同时也会莫名奇妙?

因为mysql的管理员没有办法知道purge线程什么时候清理哪个被删除的行,正在清理哪个被删除的行。

希望这些顾虑都是多余的,从作者实际的运维经验中来看----目前为止,还没有发现是因为purge线程的干扰而出现死锁的现象。

好,废话说得太多了,我们还是来实际分析一下,purge线程在数据库中的核心函数吧。

purge线程的前段函数栈如下,可以看到有undo_rec这样的数据结构。

因为数据库的数据页特别多,要清除被删除的页,如果一个一个的找,那代价也太大了,是非常不明智的。......

mysql purge 线程_2 mysql的purge线程知多少?相关推荐

  1. mysql清理连接数缓存,MySQL连接池、线程缓存、线程池的区别

    1. MySQL连接池 连接池通常实现在client端,是指应用(客户端)预先创建一定的连接,利用这些连接服务于客户端所有的DB请求.如果某一个时刻,空闲的连接数小于DB的请求数,则需要将请求排队,等 ...

  2. MySQL系列:innodb源代码分析之线程并发同步机制

    innodb是一个多线程并发的存储引擎,内部的读写都是用多线程来实现的,所以innodb内部实现了一个比較高效的并发同步机制. innodb并没有直接使用系统提供的锁(latch)同步结构,而是对其进 ...

  3. mysql 线程缓存_浅析MySQL内存的使用说明(全局缓存+线程缓存)

    首先我们来看一个公式,MySQL中内存分为全局内存和线程内存两大部分(其实并不全部,只是影响比较大的 部分): 复制代码 代码如下: per_thread_buffers=(read_buffer_s ...

  4. 一步一步从Linux线程到MySQL慢sql定位

    一步一步从Linux线程到MySQL慢sql定位 原创 o月牙数据库架构师o 2020-08-28 06:15:00 中午了,正在吃着黄焖鸡外卖,突然手机短信声音响了,一看一台mysql数据库服务器的 ...

  5. mysql中用户线程作用,mysql用户线程的建立与用户线程的状态源码解析

    pig已经好长一段时间没有分享文章了,有点对不起订阅的朋友.最近在做比较复杂跟困难的事情,也并不一定最终会有成果,因此必须对此沉默. 停了一段时间,现在定个小目标----2个星期至少写一篇小文章,简单 ...

  6. mysql global locks_mysql8 参考手册--NDB群集线程状态

    1.Committing events to binlog 2.Opening mysql.ndb_apply_status 3.Processing events 线程正在处理二进制记录的事件. 4 ...

  7. mysql 线程池大小设置_MySQL线程池参数解析

    线程池是数据库系统非常重要功能,然而MySQL社区版并不包含线程池功能,不过好在MySQL的Percona发行版本提供了这个功能,除此之外,MySQL的企业版也提供线程池,从性价比上说,Percona ...

  8. mysql主从同步遇到的问题,线程正常,但是没有同步数据

    需求: 将主库的表同步到从库,数据库名不一样,映射关系如下: (pres_eims,riskdb),(pres_system,pres_system_slave),(pres_business,pre ...

  9. linux下mysql主从同步是主从i/o线程显示为no_mysql主从同步IO线程NO

    主从同步错误一例 mysql> show slavestatus\G; ***************************1. row *************************** ...

最新文章

  1. Class中isAssignableFrom() 方法
  2. 2010年下半年网络工程师考试上午试卷与参考答案(3)
  3. 用存储过程创建的分页
  4. 【Hibernate】Hibernate查询语言HQL详解
  5. 博鳌直击 | 大数据开发的最大障碍是什么?
  6. c 语言生成json 文件,如何用c语言反序列化JSON文件#
  7. springboot @Configuration配置类里面使用@Value获取不到.yml配置文件属性的值
  8. H.264/AVC原理介绍
  9. 智能音箱调研报告|语音交互功能详析
  10. 随机生成手机号的java代码
  11. 关于微信公众号的迁移,在此记录一下
  12. linux双网卡透明网桥,两种网桥透明网桥和源路由选择网桥
  13. vim 方向键和backspace乱码
  14. 食物相克表食物最佳搭配
  15. 开源CRM+SaaS云服务的生态模式能否撬动中国管理软件市场?
  16. 放弃win10自带OneNote之后,下载完整版OneNote2016
  17. 记一个实际运用反射的例子
  18. Zabbix 服务端虚拟机的安装
  19. python情感分析中文_【python机器学习】中文情感分析
  20. 脏读幻读不可重复读的区别

热门文章

  1. Android开发中Activity与Service之间getSharedPreferences不同步的解决方法
  2. 【甄选靶场】Vulnhub百个项目渗透——项目三十三:Money-Heist-catch-me-if-you-can(密码学)
  3. txt中的数据导入matlab中画图,excel怎样导入表格数据-如何将excel表格中大量数据导入matlab中并作图...
  4. 论文中文翻译——kAFL Hardware-Assisted Feedback Fuzzing for OS Kernels
  5. CTFshow web入门——文件上传
  6. OpenGL与3D开发-绘制2D图形
  7. Domino V11 和Domino V11 Jams
  8. 2014.04.21 ——— android 魅族SmartBar判断
  9. [PyQt5]基本控件12 - 对话框QDialog
  10. kodi没有中文设置_kodi播放器设置中文的方法