资 源 简 介
MySQLDBA修炼之道-完整版,带书签,内容非常好。。。。。目录推荐序前言第一部分入门篇第1章理解 MySQL1.1 MySQL介绍1.2 MYSQL的基础架构和版本1.3查询执行过程概述14 MySQL权限1.5长连接、短连接、连接池1.6存储引擎简介1.7MSQL复制架构1.8—些基础概念第2章MSOL安装部署和入门2.1如何选择 MySQL版本2.2官方版本的安装2.3其他 MySQL分支的安装24安装 InnoDB Plugn2.5常用命令2.6 MYSQL的主要参数设置第二部分开发篇第3章开发基础3.1相关基础概念3.2数据模型3.3SQL基础34PHP开发3.5索引3.6ID键3.7字符集和国际化支持第4章开发进阶4.1范式和反范式4.2权限机制和安全4.3慢查询日志4.4应用程序性能管理4.5数据库设计4.6导入导出数据4.7事务和锁48死锁49其他特性第5章开发技巧5.1存储树形数据5.2转换字符集5.3处理重复值5.4分页算法5.5处理NULL值5.6存储URL地址5.7归档历史数据5.8使用数据库存储图片59多表 UPDATE5.10生成全局唯一D5.11使用SOL生成升级SQL第6章查询优化6.1基础知识6,2各种语句优化63OLAP业务优化第7章研发规范7.1命名约定7.2索引7.3表设计7.4SOL语句7.5SQL脚本7.6数据架构的建议7.7开发环境、测试环境的配置参数建议7.8数据规划表79其他规范第三部分测试篇第8章测试基础8.1基础概念8.2性能测试的目的8.3基准测试8.4性能/基准测试的步骤8.5测试的注意事项第9章测试实践9.1硬件测试9.2MSOL测试93应用数据库性能测试第四部分运维篇第10章基础知识10.1文件和IO管理10.2 MySQL如何进行灾难恢复10.3变量设置、配置文件和主要参数10.4 MySQL Query Cache和优化器10.5 SHOW INNODB STATUS解析第1章MSQL的监控11.1非数据库的监控11.2数据库的监控11.3数据库监控的实现11.4数据库监控的可视化第12章 MySQL复制12.1基础知识12.2配置主从复制12.3配置主主复制12.4配置级联复制、环形复制12.5跨IC复制12.6多主复制12.7延时复制12.8半同步复制12.9在线搭建从库12.10配置日志服务器12.11常见的复制问题及处埋方法第13章迁移、升级、备份、恢复数据库13.1升级13.2新业务部署上线13.3迁移13.4生产环境常用的备份策略13.5常用备份方式和恢复方法第14章运维技巧和常见问题处理14.1MSOL运维技巧14.2常见问题14.3故障和性能问题处理第15章运维管理15.1规模化运维15.2服务器采购15.3运维规则第五部分性能调优与架构篇第16章基础理论和工具6.1性能调优理论16.2诊断工具163调优方法论第17章应用程序调优17.1程序访问调优17.2应用服务器调优第18章 MySQL Server调优18.1概述18.2 MySQL的主要参数18.3MSQL内存优化18.4 MySQL CPU优化18.5 MySQL 1O优化第19章操作系统、硬件、网络的优化19.1基本概念19.2文件系统的优化19.3内存19.4 CPU51919.6网络第20章可扩展的架构20.1做好容量规划20.2扩展和拆分20.3读写分离20.4切勿过度设计20.5可扩展的方法20.6使用云数据库第21章高可用性21.1概述21.2单点故障21.3MSQL数据库切换21.4跨DDC同步算22章其但产品的选择22.1列式数据库产品22.2 NOSQL产品的选择参考文献将本书献给三岁的女儿陈观之。推荐序我之前也看过很多数据库相关的图书,但是没有一本能像这本书一样,让我渎起来感觉那么轻松愉快,读完后觉得必须要收藏一木作为案头必备。木书的作者是互联网一线的数据库开发、运维专家,书中的内容是其对10多年工作中所遇问题的思考和总结,围绕着MsoI徐徐展开,犹如庖丁解牛,对Msα的核心逻辑解释得相当清晰和透彻。本书以一个数据库专家的视角,解析其观察到的方方面面,内容涉及业务系统设计测试体系运维管理等。本书的很多内容已经不仅仅是从一个DBA的角度出发,更多的是从个系统架构呃和运维管理者的角度来思考问题。读完全书,你将会对整个研发、运维体系的相关领域都有个概要的认识。这种提纲挈领的架构,对于某个知识领域的学习是非常有价值的。之所以说本书读起来令人轻松愉悦,是因为书中提及的很多问题都是我所关心的,而笔者均以很简练的语言给予了回答和梳理,让人理解起来非常凊晰、不费劲。我边看边忍不住想,这风柊分明就是UC内部的培训资料嘛,有很強烈的亲切感本书对实战中的很多问题,都给出了详细的解题思路,方案成熟、观点中肯,体现了对技术应有的严谨和敬畏,我相信对从事DA⊥作的很多技术人员来说,本书具有非常重要的参考价值。毫不夸张地说,MSQ开源项目推动了整个互联网产品的发展。我们从中获益不少,同时也深刻体会到自由分享精神对社会进步的贡献。从晓勇写的这本书中,我也能感受到这一分享理念。我非常赞赏这种分享精神,也希望更多的技术人员都能有此回报社会的情怀。20年前,互联网刚刚起步,工程师是靠掌握批指令和娴熟的操作来执行运維工作的。现如今,廾发和运维体系匚经渐趋成熟,不少企业更是将基础运维工作交给云服务厂商,研发和运维人员得以从烦琐的技术细节中解放出来,从而更专注于业务分析和产品设计,这个进步是巨大的往后看,我们正从∏时代过渡到D时代。在DT企业中,工程师使用贝叶斯变换和杋器学习来操作数据,就好比当初使用“10).ckeO来编写程序一样,巨大的技术变革正在来临在这风起云涌之际,技术让我们再次感受到年轻和无知,希望我们能从MSQL出发,保持匪盛的好奇心和探索精神,迈向下一个崭新的时代。梁捷(Jack)UC联合创始人,神马搜索总裁2016年12月前为什么要写本书本书主要讲述 MySQL DBA的必各技能,包括MsQL的安装署、开发、测试、监控和运维,此外,读者还可从中学习到系统架构的一些知识我从业10多年,先是在传统行业做开发工程师、系统管理员、 Oracle dba,2008年因为机缘巧合投身互联网,开始从事MysαL运维工作。相对于成熱的商业数据库,MSOL缺乏高质量的技术文档和佟书,我在接触MSQL的过程中,也感觉市面上的相关图书还存在一些不足,难以系统化地学习 MySQL从一名 Oracle dba转型为一名 MYSQL DBA,从传统领域转投到互联网公司,即便我之前有丰富的经验,在学习 MySQL过程中也仍然走了一些弯路。成为一名 MySQL DBA并不难,但成为一名高水平的 MySQL DBA则需要时间、知识、技能、经验和意识的积累。我在学习MSQL的过程中,有时会去看技术论坛,或者通过MSN群等聊天⊥具咨询他人一些问题,也得到过一些朋友的帮助。国内存在一批高素质的 MySQL DBA,但出于各种现实因素,有心写一本关于 MySQL DBA实战的书的人很少,所以市面上缺乏高质量的相关图书不足为奇。2013年年初,华章公司的策趔编辑杨绣国找到我,说希塑我能写一本关于 MySQL的书,我当时很犹豫,虽然我有时会在网上回答一些问题,也定期撰写个人博客,但是,写一本书,对于我来说,是一个艰巨的任务。经过一些交流,我慢慢明确了白己的想法,其实我一直是想写一本书的,既然我对市面上的相关图书不太满意,那么就白己写木吧,当时我唯一欠缺的是写作经验以及时间。我写这木书的目的是想做一个尝试——引领感兴趣的读者进入MSQL数摭厍运维领域。国内互联网行业正在高速发展,迫切需要大量MSsα人才,希望这本书可以帮助一些读者顺利进入数据库领域。而且,我也想将自己的一些心得分享给读者,希望热爱数据库技术的同行们在工作中少走弯路。在技术领域工作多伻后,文字写作对于我来说其实已经很陌生了,弗朗西斯·培根说过,‘阅读使人充实,谈论使人机敏,写作使人精确”。在本书的写作的过程中,其实我自己也获得了很多,不仅学到了更多的知识,对于自己的精神也是·种洗礼。写作真的是一种积极而富有价值的创作,我们只有正确地掌握所讲述的内容,才能为言行思想带来正能量希望在这个世界上,有越来越多的人愿意分享,且能享受分享的乐趣。读者对象木书的主要读者是 MYSQL DBA,在现实中,许多公司并没有配备专职的数据厍维护人员,数据库的维护工作往往也是由开发工程师和系统管理员负责的,因此这本书也适用于他们。这是一本偏向实战的技术书籍,不会过多地涉及技术的细节和原理,我会尽量直接地给出解决方案;本书除了训MSQL技能,还花了大量篇幅讲述架构;夲书不仅讲述技术,也讲述技术之外的一些运维管理规则。对数据库的使用、维护和管坦感兴越的运维工程师、架构师、运维经嘿、丌发工程师、测试工程师都可以将本书作为参考图书,癿了解其他领域会有助于你的职业发展。本书乜适合希望转行到数据库运维领域的人士。许多人想从事Ⅳ工作,但当下时间宝贵,要想进入一个行业或改变职业方向,往往会花费巨大的时间成木,所以这木书将尽量做到简单、易懂,以节省大家的学习成木。如何阅读本书本书将分为5个部分,分别从入门、开发、测试、运、性能与架构这几个方面来介绍 MySQL的使用。对于初次接触Myso的读者,建议按照章节顺序逐步学习。对于已经有一定经验的读者,则可以选择自己感兴趣的篇章,跳过自己已经熟悉的内容。第一部分讲述了MSαL的基础架构、杈限机制、常用的存储引擎、复制榘构、安裝及常用命令等知识。如果读者是初次接触MSQL,那么可能还需要在这一部分上花一些时间。在掌握Ln和MSQL的基本使用方法之后,就可以开始第一部分的学第二部分将介绍MSL数据库开发相关的基础知识和技巧。基础知识包括关系数据模型、字符集、常用的SQL语法、范式、索引和事务等。由于开发的领域很广,所以木部分仅仅选取了一些常用的技巧分亨给大家。最后会结合实际生产,提供份开发规范供大家参考。第三部分介绍了数据库基准测试所需要的理论知识和常用的测试工具,本部分将介绍一个MSQI的基准测试模型第四部分介绍了MSL运维工作的各项职责:监控、复制、迁移、升级、各份和恢复,然后通过一些案例向读者传授一些维护技巧及处理问题的方法。读者还将学习到规模化运维MSQL的一些知识和规则。第五部分介绍了性能调优的一些理论知识,以及从应用程序到数据库,再到存储等各个环节的优化。由于架构和性能伉化密切相关,本部分也介绍了些 MySQL DBA需要熟悉的架构优化知识。初次接触 MySQL的读者对于架构优化的内容可能会感到难以理解,但随着经验的增长,再理解这些内容洊不公再有问题。本书假设读者已经对软硬件有了一定的认识,掌握了一门脚本语言,并且对Uni或LiⅨ有一定的使用经验,对于效据库有了基本的认识。阅读本书时,读者不需要预先准备好上述的所有知识,但需要有意识地在阅读本书之外不断地补充自己的基础知识。我会对以上内容做深入的讲解,但如果读者有基础会更好,好的基础有利于快速吸收知识和深入思考问题。如果读者还不会使用Linⅸ和编写She脚本,那么,建议尽快搭建一个学习环境出于DBA需要和研发、测试、产品、运营、监控等团队进行合作,所以对于相关领域所涉及的数据库知识,本书也会做些介绍。但是,由于经验侧重的关系,木书将主要从DBA的角度来讲述这些知识和技能。本书主要基于MSαL官方5.I版本写作,这也是目前最流行的版本,我会补充 MySQL最新版本的少许内容,但跟踪MSQL新版本更合适的筼略是关注官方发布的新特性说明、新版本的文档亍册,跟踪ψ内专家的技术博客和社交媒体等。通过阅读本书,读者可以学到 MySQLE的许多知识,但是仅通过阅读是难以获得技能和经验的。读者需要有一个适合自己的MysαL测试环境,并能够不断地思和实践自己的想法,这样才能够掌握技能,并得到属于自已的经验。勘误和支持由于作者的水平有限,写作时间也很仓促,书中难免存在一些错误或不准确的地方,如有不妥之处,恳请读者批评指正。为此,我特意创建了在线支持页面p^ww.dollo.com。你可以将书中的错误发布在勘误表页面,若遇到仨何问题,也可以访问Q&A贞面,我将尽量在线上为你提供最满意的解答。书中的全部源文件都将发布在这个网站上。如果你有史多的宝贵意见,也欢迎你发送邮件至我的邮箱 ucgarylagmailcom,很期待听到你们的真挚反馈。致谢