乐器网站模板,wordpress 主题 更改,设计资源网,自助在线设计平台文章目录 #x1f50a;博主介绍#x1f964;本文内容#x1f4e2;文章总结#x1f4e5;博主目标 #x1f50a;博主介绍 #x1f31f;我是廖志伟#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作… 文章目录 博主介绍本文内容文章总结博主目标 博主介绍 我是廖志伟一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文专业写手、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。跑过十五公里、徒步爬过衡山、有过三个月减肥20斤的经历、是个喜欢躺平的狠人。 拥有多年一线研发和团队管理经验研究过主流框架的底层源码(Spring、SpringBoot、Spring MVC、SpringCould、Mybatis、Dubbo、Zookeeper)消息中间件底层架构原理(RabbitMQ、RockerMQ、Kafka)、Redis缓存、MySQL关系型数据库、 ElasticSearch全文搜索、MongoDB非关系型数据库、Apache ShardingSphere分库分表读写分离、设计模式、领域驱动DDD、Kubernetes容器编排等。 有过从0到1的项目高并发项目开发与管理经验对JVM调优、MySQL调优、Redis调优 、ElasticSearch调优、消息中间件调优、系统架构调优都有着比较全面的实战经验。 有过云端搭建服务器环境自动化部署CI/CD弹性伸缩扩容服务器最高200台了解过秒级部署阿里云的ACK和华为云的云容器引擎CCE流程能独立开发和部署整个后端服务有过分库分表的实战经验。 经过多年在CSDN创作上千篇文章的经验积累我已经拥有了不错的写作技巧与清华大学出版社签下了四本书籍的合约并将陆续在明年出版。这些书籍包括了基础篇、进阶篇、架构篇的《Java项目实战—深入理解大型互联网企业通用技术》以及《解密程序员的思维密码–沟通、演讲、思考的实践》。具体出版计划会根据实际情况进行调整希望各位读者朋友能够多多支持 文章目录 博主介绍本文内容文章总结博主目标 阅读前快速浏览目录和章节概览可帮助了解文章结构、内容和作者的重点。了解自己希望从中获得什么样的知识或经验是非常重要的。建议在阅读时做笔记、思考问题、自我提问以加深理解和吸收知识。 在这个美好的时刻本人不再啰嗦废话现在毫不拖延地进入文章所要讨论的主题。接下来我将为大家呈现正文内容。 本文内容 今天我们就来深入探讨一下MySQL后台线程的那些事儿。你知道吗MySQL后台线程不仅仅是为了维持系统运转那么简单它们还肩负着备份数据、确保缓存最新以及保障磁盘访问安全等等重要任务呢以下我要分享的观点都是我在研读《MySQL技术内幕InnoDB存储引擎》时的心得体会。
首先要想了解MySQL后台线程我们先得从“马主人”线程MasterThread说起。要说这个线程可真是挺关键的它负责把缓冲池里的数据备份到硬盘上来保持数据的一致性像更新脏页面呀合并插入缓冲啊回收UNDO页面什么的都是靠它搞定的。而且值得一提的是从1.1版开始这项操作就可以独立出来了。哈哈看来这个Life Cycle解析得好清楚喔
另外还有几个我们不能忽视的后台线程IO线程IODInput/Output thread、清理线程PurgeThread和清洁线程PageCleanerThread。别看他们听起来神秘莫测其实他们在提升数据库性能方面可是功不可没哟。在这里强烈推荐大家去学习一下那四类IO线程write、read、insert buffer和log IO thread。
更有趣儿的是IO线程是用大量的AIOAsync IO来应对写入IO请求write、read、insert buffer和IOP thread的哦简直就是性能的救星而且IOD线程的主要任务就是处理这些IO请求的回调。至于PurgeThread嘛它主要是帮助处理在事务提交后曾经引用过的undo log回滚日志并不再需要的情形此时就要用到PurgeThread来回收已使用且分配过的undo页面啦。而PageCleanerThread大家记住是从InnoDB的1.2.x版更新的东东专门负责将过去版本中的更新脏页面操作放在单独的线程里执行从而减轻了马主人线程的负担。
说到线程配置让我们假设一下有个16个核的服务器MySQL给你分派了这么几条线程马主人线程1条IORef线程13条为了维护平衡让read thread和write thread都各占6个核PurgeThread和PageCleanerThread各1条。不过要注意的是有些版本的mysql还需要InsertBuffer线程但到了 MySQL 5.6和更高版本就不用操心了。同样地LogIOT线程在某些版本中还是必要的但是到了 MySQL 5.7以上的版本就可以放手不管了。
如果要深入研究的话你会发现主线程MasterThread享有最高的优先权。在它的内部包含了多个循环过程主要循环过程、后台循环过程、清空循环过程和停止循环过程。主线程会根据数据库运行状况在各个循环过程中轮流更换。这就是MySQL内部线程的运作方式。
现在让我们回到线程切换MasterThread - background loop可能跳转到flush loop - flush loop - suspend loop这里MasterThread会暂时休眠一下等待些什么事情发生。好啦关于MySQL后台线程的知识就讲到这里。当然每个线程的具体实现细节可能因不同的版本而有所变化这里列举出的信息仅供参考。 文章总结
对本篇文章进行总结
以上就是今天要讲的内容阅读结束后反思和总结所学内容并尝试应用到现实中有助于深化理解和应用知识。与朋友或同事分享所读内容讨论细节并获得反馈也有助于加深对知识的理解和吸收。 如果您需要转载或者搬运这篇文章的话非常欢迎您私信我哦~ 希望各位读者大大多多支持用心写文章的博主现在时代变了 信息爆炸酒香也怕巷子深博主真的需要大家的帮助才能在这片海洋中继续发光发热所以赶紧动动你的小手点波关注❤️点波赞点波收藏⭐甚至点波评论✍️都是对博主最好的支持和鼓励 博客主页 我是廖志伟开源项目java_wxid 哔哩哔哩我是廖志伟个人社区幕后大佬个人微信号 SeniorRD微信号二维码
博主目标 程序开发这条路不能停停下来容易被淘汰掉吃不了自律的苦就要受平庸的罪持续的能力才能带来持续的自信。我本是一个很普通的程序员放在人堆里除了与生俱来的盛世美颜就剩180的大高个了就是我这样的一个人默默写博文也有好多年了。有句老话说的好牛逼之前都是傻逼式的坚持希望自己可以通过大量的作品、时间的积累、个人魅力、运气、时机可以打造属于自己的技术影响力。内心起伏不定我时而激动时而沉思。我希望自己能成为一个综合性人才具备技术、业务和管理方面的精湛技能。我想成为产品架构路线的总设计师团队的指挥者技术团队的中流砥柱企业战略和资本规划的实战专家。这个目标的实现需要不懈的努力和持续的成长但我必须努力追求。因为我知道只有成为这样的人才我才能在职业生涯中不断前进并为企业的发展带来真正的价值。在这个不断变化的时代我们必须随时准备好迎接挑战不断学习和探索新的领域才能不断地向前推进。我坚信只要我不断努力我一定会达到自己的目标。 有需要对自己进行综合性评估进行职业方向规划我可以让技术大牛帮你模拟面试、针对性的指导、传授面试技巧、简历优化、进行技术问题答疑等服务。 可访问https://java_wxid.gitee.io/tojson/