我写的书上架了,当当, 京东 有售。如果读者觉得不错,请给一个好评 :-)
1、书写的时间跨度很长,3、4年吧,当然花的时间远远没有那么多。初稿部分完成于广州大学城的一些教室内,长沙期间,主要后面一些章节以及校阅。
2、做了许多年技术工作,语文退化了。读者可能有时看不懂一些章节,这也是正常的,因为确实里面包含了自己许多年的经验,不是一下子可以说透,我也没有这个能力,我已经尽力去分享了,我相信5年以上经验的人,会有更多的体会;
3、以前写的东西,随着时间增长,会觉得需要补充完善一些内容,可是自己又没有足够时间精力去好好修改,希望读者不要介意;
4、写书更多是为了交流,自己写书,就知道写书有多难,如果没有一颗交流的心,一种信念支持,是很难坚持下去的。国内各大互联网公司有一批高素质的MySQL DBA的,可是因为很简单的 投入产出比的考量, 很难有人愿意好好写一本书,这个现状可能长期保持下去,希望后续有更多的DBA,特别是BAT的DBA们,多写写MySQL的书。
=================================书的前言==============
前言
为什么要写本书
本书主要讲述MySQL DBA的必备技能,包括MySQL的安装部署、开发、测试、监控和运维,此外,读者还可从中学习到系统架构的一些知识。
我从业10多年,先是在传统行业做开发工程师、系统管理员、Oracle DBA,2008年因为机缘巧合投身互联网,开始从事MySQL运维工作。相对于成熟的商业数据库,MySQL缺乏高质量的技术文档和图书,我在接触MySQL的过程中,也感觉市面上的相关图书还存在一些不足,难以系统化地学习MySQL。
从一名Oracle DBA转型为一名MySQL DBA,从传统领域转投到互联网公司,即便我之前有丰富的经验,在学习MySQL的过程中也仍然走了一些弯路。成为一名MySQL DBA并不难,但成为一名高水平的MySQL DBA则需要时间、知识、技能、经验和意识的积累。
我在学习MySQL的过程中,有时会去看技术论坛,或者通过MSN群等聊天工具咨询他人一些问题,也得到过一些朋友的帮助。国内存在一批高素质的MySQL DBA,但由于各种现实因素,有心写一本关于MySQL DBA实战的书的人很少,所以市面上缺乏高质量的相关图书不足为奇。2013年年初,华章公司的策划编辑杨绣国找到我,说希望我能写一本关于MySQL的书,我当时很犹豫,虽然我有时会在网上回答一些问题,也定期撰写个人博客,但是,写一本书,对于我来说,是一个艰巨的任务。经过一些交流,我慢慢明确了自己的想法,其实我一直是想写一本书的,既然我对市面上的相关图书不太满意,那么就自己写一本吧,当时我唯一欠缺的是写作经验以及时间。
我写这本书的目的是想做一个尝试——引领感兴趣的读者进入MySQL数据库运维领域。国内互联网行业正在高速发展,迫切需要大量的MySQL人才,希望这本书可以帮助一些读者顺利进入数据库领域。而且,我也想将自己的一些心得分享给读者,希望热爱数据库技术的同行们在工作中少走弯路。
在技术领域工作多年后,文字写作对于我来说其实已经很陌生了,弗朗西斯·培根说过,“阅读使人充实,谈论使人机敏,写作使人精确”。在本书的写作的过程中,其实我自己也获得了很多,不仅学到了更多的知识,对于自己的精神也是一种洗礼。写作真的是一种积极而富有价值的创作,我们只有正确地掌握所讲述的内容,才能为言行思想带来正能量。
希望在这个世界上,有越来越多的人愿意分享,且能享受分享的乐趣。
读者对象
本书的主要读者是MySQL DBA,在现实中,许多公司并没有配备专职的数据库维护人员,数据库的维护工作往往也是由开发工程师和系统管理员负责的,因此这本书也适用于他们。
这是一本偏向实战的技术书籍,不会过多地涉及技术的细节和原理,我会尽量直接地给出解决方案;本书除了讲MySQL技能,还花了大量篇幅讲述架构;本书不仅讲述技术,也讲述技术之外的一些运维管理规则。对数据库的使用、维护和管理感兴趣的运维工程师、架构师、运维经理、开发工程师、测试工程师都可以将本书作为参考图书,而了解其他领域会有助于你的职业发展。
本书也适合希望转行到数据库运维领域的人士。许多人想从事IT工作,但当下时间宝贵,要想进入一个行业或改变职业方向,往往会花费巨大的时间成本,所以这本书将尽量做到简单、易懂,以节省大家的学习成本。
如何阅读本书
本书将分为5个部分,分别从入门、开发、测试、运维、性能与架构这几个方面来介绍MySQL的使用。对于初次接触MySQL的读者,建议按照章节顺序逐步学习。对于已经有一定经验的读者,则可以选择自己感兴趣的篇章,跳过自己已经熟悉的内容。
第一部分讲述了MySQL的基础架构、权限机制、常用的存储引擎、复制架构、安装及常用命令等知识。如果读者是初次接触MySQL,那么可能还需要在这一部分上花一些时间。在掌握Linux和MySQL的基本使用方法之后,就可以开始第二部分的学习了。
第二部分将介绍MySQL数据库开发相关的基础知识和技巧。基础知识包括关系数据模型、字符集、常用的SQL语法、范式、索引和事务等。由于开发的领域很广,所以本部分仅仅选取了一些常用的技巧分享给大家。最后会结合实际生产,提供一份开发规范供大家参考。
第三部分介绍了数据库基准测试所需要的理论知识和常用的测试工具。本部分将介绍一个MySQL的基准测试模型。
第四部分介绍了MySQL运维工作的各项职责:监控、复制、迁移、升级、备份和恢复,然后通过一些案例向读者传授一些维护技巧及处理问题的方法。读者还将学习到规模化运维MySQL的一些知识和规则。
第五部分介绍了性能调优的一些理论知识,以及从应用程序到数据库,再到存储等各个环节的优化。由于架构和性能优化密切相关,本部分也介绍了一些MySQL DBA需要熟悉的架构优化知识。初次接触MySQL的读者对于架构优化的内容可能会感到难以理解,但随着经验的增长,再理解这些内容将不会再有问题。
本书假设读者已经对软硬件有了一定的认识,掌握了一门脚本语言,并且对Unix或Linux有一定的使用经验,对于数据库有了基本的认识。阅读本书时,读者不需要预先准备好上述的所有知识,但需要有意识地在阅读本书之外不断地补充自己的基础知识。我会对以上内容做深入的讲解,但如果读者有基础会更好,好的基础有利于快速吸收知识和深入思考问题。如果读者还不会使用Linux和编写Shell脚本,那么,建议尽快搭建一个学习环境。
由于DBA需要和研发、测试、产品、运营、监控等团队进行合作,所以对于相关领域所涉及的数据库知识,本书也会做一些介绍。但是,由于经验侧重的关系,本书将主要从DBA的角度来讲述这些知识和技能。
本书主要基于MySQL官方5.1版本写作,这也是目前最流行的版本,我会补充MySQL最新版本的少许内容,但跟踪MySQL新版本更合适的策略是关注官方发布的新特性说明、新版本的文档手册,跟踪业内专家的技术博客和社交媒体等。
通过阅读本书,读者可以学到MySQL的许多知识,但是仅通过阅读是难以获得技能和经验的。读者需要有一个适合自己的MySQL测试环境,并能够不断地思考和实践自己的想法,这样才能够掌握技能,并得到属于自己的经验。
致谢
感谢机械工业出版社华章公司的策划编辑杨绣国的努力工作,没有她的投入和耐心,就不可能有本书的面世。本书写作的时间较长,我有时会充满愧疚,是杨绣国编辑的包容和鼓励,最终引导我顺利完成全部书稿。
感谢UC的旧同事,和你们的共事,是我职业生涯最宝贵的财富,我将一直铭记在心。
最后,我要感谢我的家人和朋友,是你们的支持,让我能够坚持下来。
陈晓勇(Gary Chen)
中国,长沙,2016年12月
===================推荐序================
推荐序
我之前也看过很多数据库相关的图书,但是没有一本能像这本书一样,让我读起来感觉那么轻松愉快,读完后觉得必须要收藏一本作为案头必备。
本书的作者是互联网一线的数据库开发、运维专家,书中的内容是其对10多年工作中所遇问题的思考和总结,围绕着MySQL徐徐展开,犹如庖丁解牛,对MySQL的核心逻辑解释得相当清晰和透彻。本书以一个数据库专家的视角,解析其观察到的方方面面,内容涉及“业务系统设计”“测试体系”“运维管理”等。本书的很多内容已经不仅仅是从一个DBA的角度出发,更多的是从一个系统架构师和运维管理者的角度来思考问题。读完全书,你将会对整个研发、运维体系的相关领域都有一个概要的认识。这种提纲挈领的架构,对于某个知识领域的学习是非常有价值的。
之所以说本书读起来令人轻松愉悦,是因为书中提及的很多问题都是我所关心的,而笔者均以很简练的语言给予了回答和梳理,让人理解起来非常清晰、不费劲。我边看边忍不住想,这风格分明就是UC内部的培训资料嘛,有很强烈的亲切感。
本书对实战中的很多问题,都给出了详细的解题思路,方案成熟、观点中肯,体现了对技术应有的严谨和敬畏,我相信对从事DBA工作的很多技术人员来说,本书具有非常重要的参考价值。
毫不夸张地说,MySQL开源项目推动了整个互联网产品的发展。我们从中获益不少,同时也深刻体会到自由分享精神对社会进步的贡献。从晓勇写的这本书中,我也能感受到这一分享理念。我非常赞赏这种分享精神,也希望更多的技术人员都能有此回报社会的情怀。
20年前,互联网刚刚起步,工程师是靠掌握一批指令和娴熟的操作来执行运维工作的。现如今,开发和运维体系已经渐趋成熟,不少企业更是将基础运维工作交给云服务厂商,研发和运维人员得以从烦琐的技术细节中解放出来,从而更专注于业务分析和产品设计,这个进步是巨大的。
往后看,我们正从IT时代过渡到DT时代。在DT企业中,工程师使用贝叶斯变换和机器学习来操作数据,就好比当初使用“if()… else()”来编写程序一样,巨大的技术变革正在来临。
在这风起云涌之际,技术让我们再次感受到年轻和无知,希望我们能从MySQL出发,保持旺盛的好奇心和探索精神,迈向下一个崭新的时代。
梁捷(Jack)
UC联合创始人,神马搜索总裁
2016年12月