- 定价:¥69.00
- POD价:¥69.00
- 评分:
(已有5条评价)
- 电子书:MySQL管理之道:性能调优、高可用与监控[按需印刷]
- 促销活动:
- 我要买:
- ·如此书原封面缺失,印刷将采用出版社授权的新封面;
- ·如电子文件出现问题,可能延长印制周期,我们将提前与您沟通
基本信息

【插图】

编辑推荐
51CTO技术博客之星、资深MySQL技术专家多年工作经验结晶,指导MySQL DBA进阶修炼的最佳实践之作
包含大量来自实际生产环境的经典案例,为各种疑难问题提供了解决方法,从性能优化、高可用与监控角度帮助读者把握实践技巧
内容简介
计算机书籍
《MySQL管理之道:性能调优、高可用与监控》由资深MySQL专家撰写,以最新的MySQL版本为基础,以构建高性能MySQL服务器为核心,从故障诊断、表设计、SQL优化、性能参数调优、mydumper逻辑、xtrabackup热备份与恢复、MySQL高可用集群搭建与管理、MySQL服务器性能和服务监控等方面多角度深入讲解了如何去管理与维护MySQL服务器。
书中内容以实战为导向,所有内容均来自于笔者多年实践经验的总结和对新知识的拓展,同时也针对运维人员、DBA等相关工作者会遇到的有代表性的疑难问题给出了实用的情景模拟,并给出了解决方案。不论你目前有没有遇到过此类问题,相信对你以后处理相关问题都会有所借鉴。本书适合所有希望构建和管理高性能、高可用性的MySQL数据库系统的开发者和DBA阅读。
作译者
目录
前言
第一部分 MySQL5.5 新特性篇
第1章 MySQL5.5介绍 2
1.1 性能上的显著改变 2
1.1.1 MySQL5.5默认存储引擎的调整 2
1.1.2 充分利用CPU多核的处理能力 7
1.1.3 提高刷新脏页数量和合并插入数量,改善磁盘I/O处理能力 8
1.1.4 增加自适应刷新脏页功能 9
1.1.5 让InnoDB_Buffer_Pool缓冲池中的热数据存活更久 9
1.1.6 InnoDB的数据恢复时间加快 11
1.1.7 InnoDB同时支持多个BufferPool实例 15
1.1.8 可关闭自适应哈希索引 17
1.1.9 在InnoDB中可选择使用内存分配程序 18
1.1.10 提高默认InnoDB线程并发数 21
1.1.11 预读算法的变化 22
1.1.12 首次在Linux上实现了异步I/O 23
1.1.13 恢复组提交 24
1.1.14 InnoDB使用多个回滚段提升性能 26
1.1.15 改善清除程序进度 26
前言
很久以前,我就梦想着自己有一天能写一本书出来,但始终未能成行,直到今天,我终于鼓足勇气着手写作,把多年工作的积累毫无保留地写出来,展现给大家,这不仅对他人的技术成长会有些许帮助,同时对自己来说,也是一个重新学习的过程,何乐而不为?
2010年我有幸加入了梦寐以求的飞信公司,并以此正式开始了我的MySQL职业生涯。工作中能实际接触到海量数据、大并发是我在该领域发展的很重要的因素,工作的驱使和个人的兴趣成为我每天坚持学习MySQL的源动力。对于MySQL,目前业内用得最多的是MySQL5.1.X版本,事实上,MySQL5.5已经推出两年多了,其性能方面有了显著的提升,但市面上介绍MySQL该版本的图书还寥寥无几,大家都是通过阅读英文手册去获取新的知识,因此我决定基于这个版本来写作,把自己学到的新东西做一个系统性的总结。
读者对象
本书是一本面向应用的数据库类书籍,是日常工作中的积累。本书主要面向使用MySQL InnoDB存储引擎作为数据库后端的运维人员和DBA。书中的大部分例子都是生产环境的实战,相信会对读者今后的工作有所帮助。
要想更好地学习本书的内容,要求具备以下条件:
有一定的SQL基础。
掌握基本的MySQL操作和Linux操作,以及数据库基本原理。
接触过Shell脚本语言。
如何阅读本书
本书从知识结构上分为五大部分:
第一部分(第1~2章)详细介绍了MySQL5.5的新特性、注意事项、安装和升级方法,以及半同步复制的日常管理维护,并针对MySQL5.5与MySQL5.1进行了性能测试和功能测试。
第二部分(第3~6章)为故障诊断与优化,内容为生产环境下MySQL故障处理以及性能调优,包括表设计阶段范式的理解、字段类型的选取、采用表锁还是行锁、MySQL默认的隔离级别与传统SQL Server以及Oracle数据库默认的隔离级别的区别、SQL语句的优化以及合理利用索引等,然后讲解了my.cnf配置文件的优化、如何定期整理数据库碎片,最后介绍了硬件的优化、内存对InnoDB引擎所起的决定性作用,以及MySQL5.6的新特性等内容。
第三部分(第7~8章)为高可用软件的搭建与维护,包括企业级高可用集群RHCS、Heartbeat+DRBD和Keepalived+MySQL Replication一主一从模式的搭建与维护,故障切换脚本、MySQL+MMM读写分离架构搭建与维护,以及批量管理上百台MySQL服务器等内容。
第四部分(第9~10章)为主流监控软件的搭建与维护,包括监控软件Cacti和Nagios的安装与使用,以及线上MySQL服务器的监控脚本等内容。
第五部分(第11章)为项目案例讲解,内容包括生产环境数据库碎片整理方案、用户信息表水平拆表方案、阿里巴巴中间件Cobar水平拆表方案。
每个部分可以单独作为一本迷你书阅读,如果你未接触过MySQL5.5,建议从第一部分开始阅读。
勘误和支持
由于作者的水平有限,编写的时间也很仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。你可以将书中的错误发到我的邮箱chunyang_he@sohu.com,我将尽量提供最满意的解答。如果你有更多的宝贵意见,也欢迎你发送邮件至我的邮箱,很期待能够听到你们的真挚反馈。
致谢
媒体评论
——曹亚莉 51CTO技术博客总编
其实之前与作者的交集并不多,我接到邀请试读样章时,诚惶诚恐,于是倍加认真地阅读了样章。区别于很多资料文档式的介绍,本书的内容十分丰富。书中针对MySQL5.1到MySQL5.5的变化和差异进行了翔实讲解,从基本特性到调优的具体操作,本书都有涉及,另外还对MySQL5.6的部分特性进行了分析,非常适合正在学习和使用MySQL的各位朋友参考借鉴。
更重要的是,本书讲解极其详尽透彻。与很多类似书籍以罗列官方参数和手册不同,本书作者完全没有“偷懒”的觉悟!书中不仅对新版MySQL的特性进行了简单的描述,还对其进行了非常细致的分类和详细剖析—仅仅性能上的改变就介绍了20个特性。而且对每个特性都进行了深入浅出的解释和结合应用的实际分析。每个部分,文字解释、代码样例、数据图表、官方文档都图文并茂、一应俱全。我本人也写过书,深深知道要想做到这一点,绝对是非常费心费力的,但对读者来说,这却是莫大的福利。
因此,我愿意向各位读者推荐这本书,因为我能感受到其中蕴含的作者的心血和他多年的经验。我想,这也正是技术交流的最高价值。
——田逸 资深系统工程师
本书涵盖了新版MySQL的诸多特性,对于需要把握住潮流的技术人员来说是一顿丰盛的大餐。作者把多年的数据库管理心得诉诸于书本,以简单易懂的语言描述出来,论述的技术可操作性强,相信不管是初出茅庐的DBA,还是有一定管理经验的DBA,本书都值得一读。
——唐朝 京东网上商城高级DBA
MySQL作为目前最为成熟的开源数据库,在国内互联网公司广泛应用。淘宝网使用上千台MySQL数据库支撑了今年“双十一”单日350.19亿的交易量。不仅互联网,传统行业也在悄悄接受并尝试这些新技术带来的变革,可以预见MySQL未来必将引领未来开源数据库的潮流。因此要想应对MySQL在运维管理过程中可能出现的各种疑难杂症,也为更好地设计出高性能、高可用、可扩展的数据库架构打好基础,就必须要深入学习MySQL数据库的各种功能特性。此书就是从这些方面入手,细致介绍了最新版本MySQL的相关特性,并从基础概念、日常运维到架构设计,结合作者多年实战经验,由浅入深地进行了详细的阐述。相信只要你对MySQL感兴趣,都会开卷有益。
——陈栋 沃趣科技(woqutech.com)创始人
MySQL5.5作为目前最稳定的一个新版本,加入了众多新功能,同时在性能上也有大幅提升。尤其是高并发优化方面,使其更符合当今服务器低频多核的发展趋势。本书在填补目前MySQL管理书籍中对于MySQL5.5系列详细介绍的空缺以外,还针对最新版本MySQL5.6的部分特性进行了介绍和分析。作者结合了自身使用实践和多年丰富的MySQL管理经验为读者展现了一个完整立体的MySQL 。
——卢钧轶 大众点评网高级DBA
伴随着互联网的高速发展,MySQL在海量数据、服务器集群的管理、支持、维护等方面也有了翻天覆地的变化,尤其是在Oracle入主后所出的最新版本MySQL5.5,更是极大地方便了DBA和运维工程师们的工作。比较遗憾的是,国内对于MySQL的应用还停留在相对初级的版本上,没有充分发挥出其强大的战斗力,造成这种状况的很大一部分原因在于目前市面上相关书籍的缺乏,即使有涉及也只是“照本宣科”式的翻译,在灵活多变的运用中无法起到融会贯通的作用。本书的作者作为奋战在一线的工程师,毫无保留地给出了实战中关于MySQL5.5参数、特性、调优等的示例,同时针对MySQL5.6部分新特性进行了介绍,可谓DBA和运维工程师们的“宝典”。
——张润军北京优品聚众科技有限公司CTO
书摘
MySQL5.5 新特性篇
第1章MySQL5.5介绍
第2章半同步复制
第1章
MySQL5.5介绍
MySQL是一个中小型的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。由于它具有性能高、成本低、可靠性好等特点,近几年已经成为最流行的开源数据库,被广泛地应用在Internet上的中小型网站中。而且,随着MySQL的不断成熟,现在它也逐渐用于更多大规模的网站和应用了,比如,维基百科、Google和Facebook等。非常流行的开源软件组合“LAMP”中的“M”指的就是MySQL。
这几年,MySQL的版本在不断变更,可以说是有了翻天覆地的变化,在之前的4.0版本中,没有存储过程、触发器、函数、事件,对CPU多核的支持也不好,在经历了5.0和5.1两个过渡版本后,到5.5版,其性能和功能上已经得到了很大的改善,主要体现在CPU多核处理上有了很大提高,宕机恢复时间减少,可快速创建索引,并具有半同步复制功能等方面,目前这个版本很稳定。2013年春节,5.6版本已经出了GA版,但这里不推荐直接将其用于生产环境中,因为该版本还有许多未知Bug在修复,建议1年后再开始应用,不要充当小白鼠,本书中也只会针对该版部分功能上的新特性进行介绍。
本章主要讲解的是MySQL5.5 和 InnoDB 的一些增强性能,这些增强性能极大地提高了系统和MySQL的性能。下面将详细介绍每一个关键的增强性能及其实现过程。
为了不误导读者,保证全文的准确性,下面的内容会结合MySQL5.5官方手册《14.4. New Features of InnoDB 1.1》来讲解,帮助大家认识MySQL5.5中一些较为重要的改变,其中也许会有疏漏的地方,不到之处请大家访问http://dev.MySQL.com/doc/refman/5.5/en/innodb-5-5.html,参考相关的英文文档。
1.1性能上的显著改变
1.1.1MySQL5.5默认存储引擎的调整
在MySQL5.1.X之前的版本中,默认的存储引擎是MyISAM,每个MyISAM在磁盘上会将数据存储成三个文件。第一个文件是表结构文件,它的名字以表的名字开始,其扩展名会指出文件类型,为.frm文件存储表定义;第二个文件是数据文件,其扩展名为.MYD (MYData);第三个文件是索引文件,其扩展名是.MYI (MYIndex)。
MyISAM存储引擎的特点是表级锁、不支持事务和全文索引,适合一些CMS内容管理系统作为后台数据库使用,但是在大并发、重负荷生产系统上,表锁的特性显得有些力不从心,并且如果系统出现宕机、MySQLd进程崩溃,MyISAM引擎表很容易受到损坏,这时不得不用外部命令MyISAMchk去修复它。
从MySQL5.5.X开始,默认的存储引擎变更为InnoDB Plugin引擎。
InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。InnoDB锁定在行级,并且也在SELECT语句提供一个与Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。之所以没有在InnoDB中扩大锁定的需要,是因为InnoDB中的行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY(外键)。在SQL查询中,你可以自由地将InnoDB类型的表与其他MySQL表的类型混合起来,甚至在同一个查询中也可以混合。
InnoDB是为处理巨大数据量时拥有最大性能而设计的。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。
InnoDB存储引擎被完全整合到了MySQL服务器中,不过,为了能在主内存中缓存数据和索引,InnoDB存储引擎会维持它自己的缓冲池。InnoDB会在一个表空间中存储它的表和索引,表空间可以包含数个文件(或原始磁盘分区)。这与MyISAM表不同,在MyISAM表中,每个表是被存在分离的文件中的。另外,InnoDB 表可以是任何尺寸,即使是在文件尺寸被限制为2 GB的操作系统上。
InnoDB存储引擎应用在众多高压力、高并发的大型数据库站点上。比如,著名的Internet新闻站点Slashdot.org运行在InnoDB上。Mytrix, Inc.在InnoDB上存储着超过
1 TB的数据,还有一些其他站点在InnoDB上处理平均每秒800次插入/更新的负荷。