MySQL王者晋级之路

/ 书籍 / 0 条评论 / 899浏览 / 我要评论
出版社: 电子工业出版社
出版年: 2018-3
页数: 344
定价: --
ISBN: 9787121336799

下载

电子版仅供预览及学习交流使用,下载后请24小时内删除,支持正版,喜欢的请购买正版书籍

封页

封页

编辑推荐

资深数据库专家十年沉淀 详细解析MySQL数据库体系结构 技术问答,助力面试

内容简介

目前大部分软件开发平台都基于Linux,很多互联网公司都把MySQL作为后端数据存储的数据库。如果把MySQL比喻成数据库界的一条巨龙,则本书涵盖的所有知识点就是这条巨龙的组成部分。本书深入剖析MySQL数据库体系结构,实战演练备份恢复、主从复制,详解高可用集群架构的设计与实践过程,详细梳理优化思路,展现新版本的特性,并与真实生产案例相结合,通过核心原理到“王者”实战,全面覆盖MySQL数据库的知识点。

作者简介

张甦,极数学院创始人之一,51CTO知名博主。近十年互联网线上处理及培训经验,专注于MySQL数据库,对MongoDB、Redis等NoSQL数据库以及Hadoop生态圈相关技术有深入研究。曾就职于数据库服务公司、某大型电商平台,及汽车类网站等大型互联网公司。麾下的学员遍布各大企业。

目 录

第1部分 倔强青铜篇
第1章 MySQL简介与主流分支版本
1.1 MySQL简介
1.2 MySQL主流的分支版本
1.2.1 官方版本的MySQL
1.2.2 Percona Server
1.2.3 MariaDB
第2章 MySQL数据库的安装、启动和关闭
2.1 下载MySQL二进制软件包
2.2 安装前系统环境检测
2.3 MySQL 5.6版本的安装过程
2.4 创建密码
2.5 关闭MySQL数据库
2.6 基础数据库的名称
2.7 MySQL 5.7版本的安装
2.8 MySQL数据库root密码丢失的问题
2.9 MySQL数据库的连接方式
2.10 用户权限管理
第3章 MySQL体系结构与存储引擎
3.1 MySQL体系结构
3.2 Query Cache详解
3.3 存储引擎
3.4 InnoDB体系结构
3.4.1 数据库和数据库实例
3.4.2 InnoDB存储结构
3.4.3 内存结构
3.4.4 Buffer状态及其链表结构
3.4.5 各大刷新线程及其作用
3.4.6 内存刷新机制
3.4.7 InnoDB的三大特性
第4章 数据库文件
4.1 参数文件
4.2 参数类型
4.3 错误日志文件(error log)
4.4 二进制日志文件(binary log)
4.5 慢查询日志(slow log)
4.6 全量日志(general log)
4.7 审计日志(audit log)
4.8 中继日志(relay log)
4.9 Pid文件
4.10 Socket文件
4.11 表结构文件
4.12 InnoDB存储引擎文件
第5章 表
5.1 整型
5.2 浮点型
5.3 时间类型
5.4 字符串类型
5.5 字符集
5.6 表碎片产生的原因
5.7 碎片计算方法及整理过程
5.8 表统计信息
5.9 统计信息的收集方法
5.10 MySQL库表常用命令总结
第6章 索引
6.1 二叉树结构
6.2 平衡二叉树结构
6.3 B-tree结构
6.4 B tree
6.4.1 聚集索引和普通索引
6.4.2 ICP、MRR和BKA
6.4.3 主键索引和唯一索引
6.4.4 覆盖索引
6.4.5 前缀索引
6.4.6 联合索引
6.5 哈希索引
6.6 索引的总结
第7章 事务
7.1 事务的特性
7.2 事务语句
7.3 truncate和delete的区别
7.4 事务的隔离级别
7.5 细说脏读、不可重复读、幻读、可重复读现象
7.5.1 脏读
7.5.2 不可重复读与幻读
7.5.3 可重复读
第8章 锁
8.1 InnoDB的锁类型
8.1.1 读锁
8.1.2 写锁
8.1.3 MDL锁
8.1.4 意向锁
8.2 InnoDB行锁种类
8.2.1 单个行记录的锁
8.2.2 间隙锁(GAP lock)
8.2.3 Next-key Locks
8.3 锁等待和死锁
8.4 锁问题的监控

第2部分 秩序白银篇
第9章 备份恢复
9.1 MySQL的备份方式
9.2 冷备及恢复
9.3 热备及恢复
9.3.1 mysqldump的备份与恢复
9.3.2 select …into outfile
9.3.3 load data与insert的插入速度对比
9.3.4 mydumper
9.3.5 裸文件备份XtraBackup
9.4 流式化备份
9.4.1 非压缩模式的备份
9.4.2 压缩模式的备份
9.4.3 远程备份
9.5 表空间传输
9.6 利用binlog2sql进行闪回
9.7 binlog server
9.8 总结

第3部分 荣耀黄金篇
第10章 主从复制概述
10.1 常见的几种主从架构模式图
10.2 主从复制功能
10.3 主从复制原理
10.4 复制中的重点参数详解
第11章 复制原理及实战演练
11.1 异步复制
11.2 主从复制故障处理
11.3 半同步复制
11.4 半同步复制和异步复制模式的切换
11.5 GTID 复制
11.5.1 GTID原理介绍
11.5.2 GTID存在的价值
11.5.3 主从复制中GTID的管理与维护
11.5.4 GTID复制与传统复制的切换
11.5.5 GTID使用中的限制条件
11.6 多源复制
11.7 主从延迟的解决方案及并行复制
11.8 主从复制的数据校验
11.9 总结

第4部分 尊贵铂金篇
第12章 MHA
12.1 MHA简介
12.1.1 MHA部署
12.1.2 MHA原理
12.1.3 MHA的优缺点
12.1.4 MHA工具包的功能
12.2 实战演练
第13章 Keepalived 双主架构
13.1 Keepalived介绍
13.2 集群搭建思路及建议
13.3 实验部署演练
第14章 PXC
14.1 PXC原理
14.2 PXC架构的优缺点
14.3 PXC中重要概念和重点参数
14.4 PXC架构搭建实战
14.5 PXC集群状态的监控
14.6 从节点在线转化为PXC节点
第15章 ProxySQL
15.1 ProxySQL的安装与启动
15.2 配置ProxySQL监控
15.3 ProxySQL的多层配置系统
15.4 配置ProxySQL主从分组信息
15.5 配置读写分离策略
15.6 测试读写分离
15.7 总结

第5部分 永恒钻石篇
第16章 MySQL 5.7新特性
16.1 InnoDB存储引擎的增强
16.2 其他方面的增强
第17章 MySQL全面优化
17.1 硬件优化
17.2 配置参数优化
17.3 从Linux操作系统层面来谈对MySQL的优化
17.4 表设计及其他优化
17.5 整体管理优化总结

第6部分 至尊星耀篇
第18章 Lepus之MySQL监控
18.1 Lepus简介
18.2 实战部署
18.3 监控MySQL服务器
18.4 部署Lepus慢查询分析平台实战
18.5 监控总结
第19章 MySQL版本升级
19.1 升级方式
19.2 实战演练

第7部分 最强王者篇
第20章 MySQL面试宝典
20.1 自我介绍
20.2 技术问答

前 言

找到一份合适的工作,就像在工作的八小时之内有了一个心仪的恋人—MySQL数据库就是我的甜蜜爱恋

我上学特别不爱学习,也从来没有想过,也不敢想,有天自己会写本书。作为一个在数据库领域摸爬滚打近年的老司机,从一个什么都不会的菜鸟,做到公司的高管兼资深数据库讲师,很希望把自己这些年积累下来的实战经验和一些学习MySQL数据库的心得体会分享给大家。我很能理解那些刚进入数据库领域同学的困惑,因为自己刚学习MySQL的时候,就跟无头苍蝇一样,遇到报错后在网上到处找资料,关键是看完资料后有些问题可能还是解决不了,因为不知道哪种处理方法是对的当时很崩溃真心不知道该从哪里下手学习才好。别人还经常推荐一些过于偏向概念性叙述的数据库书籍,越看越晕。我当时就想为什么非要把数据库的知识点说得这么深奥让别人看不懂理解不了呢

作本书的目的

我平常喜欢写一些技术博客,在51CTO上面写了一篇“青铜到王者,快速提高MySQL数据库段位”的文章,这篇文章指明了MySQL数据库的一个学习方向,但没有深入展开讲解里面的核心知识点。有读者发私信和留言说,能不能更具体地展开讲解呢。所以我决定把里面所有核心的技术干货写成书,毫无保留地分享给大家。希望本书对大家在生产中实践MySQL时有帮助,可以让有一定基础的有工作经验的运维人员和DBA更加深入地了解MySQL,使用维护起来更加得心应手,更希望可以让刚踏入数据库领域的读者快速掌握MySQL数据库核心知识体系,给那些想学习MySQL数据库的入门者指明一个正确方向,少走一些弯路。让我们一起朝着技术领域金字塔的塔尖大步前行。

如何阅读本书

本书知识结构上分为7部分。

1部分 倔强青铜篇(第18章)。包括MySQL简介主流分支版本数据库安装//关闭权限管理、MySQL数据库的内存池结构存储引擎线程作用刷新机制数据库文件表管理字符集统计信息与数据碎片整理的方法。还包括对索引的详细解读,执行计划的分析压力测试的展现事务的介绍,以及对隔离级别的深度讲解并结合锁一起展开学习。

第2部分 秩序白银篇(第9章)介绍生产环境中常用的备份方法逻辑备份和裸文件备份。针对mysqldump、select…into outfile、mydumperxtrabackup等备份恢复工具的原理展开详解及实践演练。

3部分 荣耀黄金篇(第1011章)介绍主从复制的原理,复制参数进行详细讲解,对半同步复制多源复制、GTID复制进行全面解读与实践,复制数据一致性的校验和复制管理技巧进行介绍,解读主从复制中的各种报错故障。

第4部分 尊贵铂金篇(第1215章)介绍互联网主流的MySQL高可用集群架构,对MHA、Keepalived、PXC原理解析维护管理与实践最后介绍ProxySQL这个强大的MySQL中间代理层的应用。

第5部分 永恒钻石篇(第1617章)介绍MySQL 5.7版本的新特性,以及通过硬件操作系统数据库程序设计这四个维度来全面介绍MySQL数据库的优化。

第6部分 至尊星耀篇(第1819章)学习部署Lepus,监控MySQL与版本升级

第7部分 最强王者篇 20。MySQL面试总结

致谢

在我从事数据库工作年的道路上,我要感谢那些曾经帮助过我的前辈们,当我遇到困难想要放弃这个行业时,是你们耐心开导与指引,才使我没有失去方向,一直坚持到今天。我也感谢51CTO这个平台,让我可以把自己工作中的经验分享给大家,感谢51CTO的运营经理高阳,不厌其烦帮我整理博客中的一些素材,才能让我的文章以好的方式呈现给大家。最后还要感谢电子工业出版社的陈晓猛编辑,感谢你的独具慧眼和对我无条件的支持与鼓励让我可以非常顺利地完成写作。

技术无国界,让我们一起热爱技术分享知识,打造出属于自己的一广阔天空。此书献给所有喜欢技术的朋友们!

联系方式

欢迎大家与我互动,联系方式如下。

博客:sumongodb.blog.51cto.com

张甦

媒体评论

在这个时代,能安安静静去读一本书的机会越来越少,能踏踏实实去深入研究技术的人也越来越少,这就越发显出可以忍耐孤独寂寞、倾心写作的人的难能可贵。在亲身经历过艰苦而漫长的实践之后,我也越来越敬仰那些笔耕不辍、钟情翰墨的作者们。

初识张甦,我就有一见如故的亲切感。当知道他已经在MySQL领域默默耕耘多年,自己培养出了一批又一批的学生的时候,我更是敬佩不已。在繁忙的工作中,还能抽出时间完成本书的编写,这是需要勇气和毅力的。

本书是对MySQL基础知识的全面解析,也是他多年工作和教学经验的结晶,其内容几乎涵盖了初学者对MySQL知识需求的方方面面,是一本非常值得学习的MySQL著作,本书将会带你进入MySQL的神奇殿堂。在我看来本书更是拙作《MySQL运维内参》的黄金搭档,一个用于知识点的全面普及,一个用于深入了解MySQL的内参指导,但愿二者结合,能够帮助所有愿意学习和使用MySQL的人。

 

周彦伟

MySQL运维内参》作者、中国MySQL用户组主席

 

总体来说,市面上MySQL类的经典书不多,其中一个重要原因就是MySQL DBA的工作内容大而全,充分享受了开源红利,理论学习和工作实践还是存在差别的。无论是学习MySQL,还是学习Oracle,数据库体系结构都是重中之重,需要在实践中不断总结,这一点我和作者的观点吻合。

作者收集整理了自己多年的一线经验,以一种轻松明快的文风来讲述MySQL体系结构和运维相关知识。通过本书,不仅能对MySQL知识体系有一个全面的了解,还能够一窥一线DBA的工作内容和技巧,相信会带给你一些新的思考和方向。

 

杨建荣

DBAplus社群发起人,Oracle ACE,《Oracle DBA工作笔记》作者

 

感谢张甦邀请,在拿到这本书大纲的时候,我问了张甦一个问题:“你写这本书的初心是什么?”答曰:“我想将自己近十年的数据库运维经验和授课感悟写给那些刚跨入此领域的学生们。”对此,我深有同感,从业十余年,我发现数据库DBA这个圈子大部分都是半路出家的,很少有人在学校里面就决定了自己要做DBA,要从事数据库相关领域的工作,更多的是随着工作职责的变更,通过自学从而走上这条路的。我认识的朋友中有从开发转DBA的,也有从运维转DBA的,大部分的情况都是数据库没有专人管理,开始是兼顾,后期慢慢就转型成了专职的DBA了。

而在这个过程中,不免会走很多的弯路,尤其是在十年前那个信息匮乏、交流不便的年代,出了问题不知道是什么原因导致的,面对需求没有什么相关的解决方案可以参考,他人的经验更是寥寥无几。目前这个时代正是信息大爆炸的时代,数据库也不再那么神秘,我们可以从各个渠道获取相关的知识,可以看同样的case别人是怎么解决的,相同的问题别的公司是怎么处理的,那么我们为什么还需要MySQL类的书籍呢?这也是我的第二个疑问,我同样问了张甦,他是这么回答的:“这本书包含了我近十年的工作经验总结,涵盖了我能想到的MySQL的各个方面,对于初学者来说是很好的入门书籍。”

我翻阅了大纲,这本书从安装下载、部署启动,到参数、索引、锁、事务等MySQL常用和不常用的知识点都有详细介绍,描述得非常直白,并配有详细的案例,确实非常适合入门级读者进行学习。我们从业者常见的分享经常会忽略一些基础概念的解释和介绍,默认受众已经知道了这部分内容,而张甦这本书完全假设受众为零基础的读者,深入浅出地介绍了MySQL的相关知识,建议作为MySQL的入门书籍。

*后,数据库DBA在人数上属于较为小众的职业,但是选择了这个职业的人都是比较有趣的,如果你也选择了这个职业,希望我们共同将其发扬光大,让更多的人理解这个职业。

 

肖鹏

微博研发中心 技术副总监

 

随着互联网时代的兴起,MySQL在数据库领域日益显现出举足轻重的地位,它不断扩大的用户群体就是很好的证明。在这样的背景下,需要越来越多的人在知识资源方面为之付出,将自己对MySQL数据库的学习过程、运维经验、个人理解等记录下来,为行业中的后来者燃起一盏明灯,让他们少走一些弯路。

这正是本书写作的初衷。书中汇集了作者多年来在MySQL运维及教学过程中不断总结、不断思考的成果,内容丰富、体例清晰。不仅有对基础知识的阐述,比如MySQL作为一个关系型通用数据库所具备的模块、组织架构、功能及特点等,还有对实际操作的指导,比如告诉你在运维中应该重点关注什么,如何控制数据库的行为,如何解决问题等,旨在让读者对数据库有一个更深入的理解。本书深入浅出,语言平实又不乏幽默,轻快又不失严谨,是一本值得学习的好书。相信开卷有益,每位读者都能在轻松畅快的阅读中有意外的收获。

 

王竹峰

去哪儿网数据库总监 Oracle MySQL ACE 

返回顶部
顶部