不是阿里P8级大佬,岂能错过这篇MySQL运维内参?啃透涨薪so
写在前面
MySQL被设计为一个可移植的数据库,几乎在当前所有系统上都能运行,如Linux、Solaris、 FreeBSD、 Mac和Windows。尽管各平台在底层(如线程)实现方面都各有不同,但是MySQL基本上能保证在各平台上的物理体系结构的一致性。因此,用户应该能很好地理解MySQL数据库在所有这些平台上是如何运作的。
由于工作的缘故,笔者的大部分时间需要与开发人员进行数据库方面的沟通,并对他们进行培训。不论他们是DBA,还是开发人员,似乎都对MySQL的体系结构了解得不够透彻。很多人喜欢把MySQL与他们以前使用的SQL Server、Oracle、 DB2作比较。因此笔者常常会听到这样的疑问:
为什么MySQL不支持全文索引?
MySQL速度快是因为它不支持事务吗?
数据量大于1000万时MySQL的性能会急剧下降吗?
不知道朋友们是否遇到过类似问题?在这里,笔者为大家安利一篇介绍MySQL数据库知识的专业秘籍——《MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践》
本篇特点
从核心原理到最佳实践,深入浅出、抽丝剥茧地进行讲解,不仅从源码和运维两个角度介绍了MySQL大部分重要概念和运维要点,还讲述了MySQL极为优秀的集群组件Galera的实现原理和运维经验,同时,也介绍了作者独立开发的MySQL审核系统Inception的设计、实现与功能。
本篇也得到了MySQL官方研发团队的大力支持,两位资深专家分别介绍了MySQL最新的支持NoSQL的组件MySQL Document Store,以及集群化组件MySQL Group Replication的实现原理和运维要点。
本篇不仅可以作为技术管理者和架构师在设计MySQL相关应用和系统时的参考,还适合MySQL应用开发者更深入地了解和使用MySQL。最后,作为MySQL DBA的必备参考,希望本篇能在实际工作中对读者有所帮助。
本书总体分三个部分。
第一部分是MySQL。
第二部分是Galera。
第三部分是Inception。
MySQL篇
在这一部分中,我们介绍了MySQL大部分常见知识点的概念和原理,以及运维经验。所谓源码面前,了无秘密。我们从MySQL源码入门开始,介绍源码结构、启动过程、创建连接、表对象缓存等,希望读者在研究MySQL的时候,能充分借助MySQL源码开源的优势,从源码出发,深入理解MySQL的精髓。当然,限于篇幅,我们只能抛砖引玉,适可而止。期望聪明的读者能打好基础,登堂入室。
本部分会重点介绍InnoDB的相关概念,从源码目录结构,到InnoDB体系架构及其数据字典、数据存储结构、索引的实现原理、两次写(DoubleWrite)、日志管理机制、InnoDB记录格式等,都进行了深度的剖析,这块内容比较复杂,也凝聚了我们巨大的心血,期望能帮助读者理解其中的相关概念。
随着MySQL 5.7的成熟及MySQL 8.0的发布,一大波MySQL新技术迎面扑来,我们也不会放过这次学习的机会。值得称道的是,本篇中包含了来自两位MySQL官方团队的专家特地给我们供稿的内容,分别详细讲述了MySQL对JSON的支持: MySQL Group Replication和MySQL Document Store。另外,我们也关注了MySQL的GTID. SYS Schema、Semi-Sync Replication等,通过对它们详细的描述,相信本篇能为广大读者在快速熟悉和掌握MySQL新版本中出现的功能的学习助上一臂之力。
在讲述各个知识点的同时,也会结合工作过程中的一些经验,跟大家分享自己的心得,例如我们详细介绍了Percona XtraBackup,也分享了在使用它的过程中碰到的问题。类似地,还有快速删除大表的案例、死锁的案例、处理很多文件时碰到的问题等。
最后,值得一提的是,我们还结合各个知识点,对MySQL如何保障数据库安全做了比较详细的总结,希望这会改变人们对开源数据库是否可靠这样问题的一些有争议的看法。
Galera篇
本部分首先介绍了Galera Cluster的设计与实现,让读者能从宏观层面理解它。当然,虽然说是宏观,但是根据本书写作的主导思想,也不免会从源码的角度去剖析其架构、理解其精华。Galera 提供了非常丰富的参数让使用者去灵活地设置,我们也做了重点介绍和解析。
在准备工作完成之后,开始讲述Galera的重要知识点:验证方法、消息传送、GCache 实现原理、SST/IST 细节、Donor/Desynced 详解、并发控制、FlowControl 及grastate.dat文件揭秘等。仔细研读了这些内容之后,相信读者对Galera的理解会更上一层楼。
实践是本书的另一个特色。所以在Galera部分也加入了不少的实践案例,例如业务更新变慢的根由溯源、手动构建集群死锁、从库的转移等,通过这些内容分享工作中的一些心得,希望读者能够从中受益。
Inception篇
这是我们从零做出来的一个开源项目。Inception 已经开源,其手册也已经在网络上广泛传播,而本书所要讲述的,更是对Inception的一种理解,以及它的意义和设计理念。
关于它的诞生、安装与使用,以及支持的选项、结果集和命令集等,我们都会介绍。同时,值得注意的是,我们特地安排了一节Inception的彩蛋,里面讲述了几个Inception的特殊功能,它们已经成为了日常工作中不可或缺的重要工具。
后记
互联网发展至今,开源软件已经深入人心,并且受到广泛的支持和响应,很多公司在使用开源软件的同时也输出了一些好的开源产品。MySQL作为当今世界上最受欢迎的开源数据库产品之一,在很多互联网企业里起到了不可或缺的作用。由于MySQL的诸多特性,比如开源免费、灵活、轻量简单且越来越多的企业开始使用MySQL,在业界诞生了一大批相关从业者,他们研究MySQL的原理,探讨MySQL的架构,完善MySQL的运维,丰富MySQL的工具,促进MySQL的发展,我们称这些人为MySQL DBA,而本人也是其中之一,深感荣幸。
以上就是这本学习精通MySQL的神书——《MySQL运维内参:MySQL、Galera、Inception核心原理与最佳实践》的PDF版本,只是展示了一部分,有兴趣获取全套资料的朋友,请帮忙转发文章,关注笔者,+++bjmsb1来免费领取吧~~~
喜欢文章请多多点赞评论转发,予人玫瑰,手留余香。关注小编,后续小编会再带来更丰富的学习内容更新,助力各位朋友们的大厂之路一帆风顺!!!