作者:empty 页数:556 出版社:empty |
内容简介本书荣2009年Jot图书大奖, 是不可多得的分享My SOL实用经验的图书。它不但可以帮助MySQL.初学者提高使用技巧, 更为有烃验的My5QLDBA指出了开发高性能MySQL应用的途修。全书包含14章和4个附录, 内容覆盖MySQL系统架构、设计应用技巧、SQL语句优化、服务器性能调优、系统配置管理和安全设置、监控分析,以及复制、扩展和备份/还原等主题,每一章的内容自成体系,适合各领域技术人员作选择性的阅读,edi ion, jointly published by O'Reilly Med in, In e.and Publi ahingHouseofElnctrunics Industry, 2010.Authorized tran a lationuf the English edition, 20080*Reilly Media, Inc., the owner e fall right atepablishandxellthessme.All rights reservedin eluding the ri hta cfr rpm duction in whole cr in part in any farm.978-0-596-10171-8 High Performance MySQL, Second Edition D2008byO'Reily Media, In e.Simpli Ged Chinese本书中文简体版专有出版权由OR illy Media.In e.
真正以MySQL为名的数据库是从1994年开始开发的, 并于1995年第一次呈现在小范围的用户面前, 它的开发者刚好不是美国人, 而是两个瑞典人Michael Widenius和David A x mark。那时的MySQL还非常简腿, 除了在一个表上做一些Insert, Update, Delete和Select操作, 恐怕没有更多的功能给用户使用, 这种情况直到2001年左右发布3.23版的时候, 才有了显著的进步——它支持大多数的基本SQL操作了, 而且还集成了我们现在熟识的MyISAM和InnoDB存储引擎。然后又是几年不断完善的过程, 到了2004年10月, 这个夯实基础的过程到达了顶峰——4.1这个经典版本发布了.次年10月, 又一里程碑式的MySQL版本发布了, 在新出的MySQL5.0里加入了游标、存储过程、触发器、视图和事务的支持,准备进入中高端应用领域,在5.0之后的版本里,MySQL明确地表现出迈向高性能数据库的发展步伐,到今天, MySQL已经上升到了600多万的装机量, 著名的WordPress, phpBB都以MySQL为后台数据库, 很多大型的WWW应用例如Wikipedia, Google和Facebook, 也都采用了MySQL作为它们的数据存储系统。反观国内, 整于心照不宜的原因, MySQL的普及程度还不如SQLServer。就我这些年来的所见所闻而言, 一直作为MySQL黄金搭档的PHP都常常使用别的数据库, 更别提其他开发语言了。好在那些上规模企业, 尤其是外资企业里, 多数明智的IT负责人在项目前期都会提议使用MySQL, 原因之一是它是免费的, 一般不会产生授权费用问题, 原因之二是它足够用了, 不是吗?你想要的增、利、改、联接(Joint) , 嵌套查询它都有, 你想要的视图、存储过程、触发器、事务它也有;如果你要集群,它也能提供。但是, 使用MySQL是一回事, 用好MySQL又是另外一回事, 市面上更多的是关于MySQL开发的书籍, 这些书籍的很多篇幅都花费在SQL语句的学习上, 若要获得关于MySQL性能提高方面的资料, 我们只能在网上的各个论坛或博客上披沙拣金了, 而本书则系统性地从各个方面讲述一个高性能MySQL应用应该怎么来做, 作者们都是这方面的行家里手,所以内容也是全面、充实,无论是架构师设计师,程序开发人员,还是系统管理员都能找到感兴趣的方面,在阅读正文前,最好能够先读一下作者精心编写的前言部分,通过它把握整本书内容的构成方式和相互关联,之后,带有目的性地阅读本书会更富有成效。本书由李军、王小东、康建助三人合作翻译完成,其中,康建勋翻译第1章和第2章前31页:王小东译第2章的后17页,以及第3章至第8章:李军翻译了序言、前言、第9章至第14章,所有附录,以及作者介绍、封面、封底等内容,并撰写了内容简介。翻译的过程也是译者与编辑、审阅人员之间交互的过程,在这个过程里,编辑徐定翔老师,审阅人金服林老师、柳安意老师给子了我们很大的帮助,如果说译者是生产毛坯的工匠,那么他们就是把毛坯打磨成精品呈现给读者的人,在此十分感谢他们!同样地,我们也要感谢家人和朋友,我们把那些本来应该陪伴家人出游,或者参加朋友聚会的时间,都“自私”地用在翻译本书上了。他们都比较宽容,一句“到时要请客哦”就原谅了我们,谢谢他们的支持!
我认识Peter、Vadim和Arjen已经有很长一段时间, 见证了他们长久以来在自己项目上使用MySQL和为各类高标准客户调优MySQL服务器的历史, 另一方面, Baron为增强MySQL的功能编写了许多客户端软件。作者们的专业背景清晰地反映在了彻底重写《High Performance MySQL:Optimizations, Replication, Backups,and More D第二版的工作里, 这本书不只告诉你如何优化工作, 从而能比以前更好地使用MySQL, 作者们还做了大量额外的工作,亲自编制执行基准测试,并将结果发布出来以佐证他们的观点。这些信息让读者可以借此获悉许多很有价值的MySQL内部工作机制这在其他书中是难以得到的; 同样, 这些信息也能帮助读者避开那些在将来会引发槽糕性能的错误。我不但要向刚刚接触MySQL服务器, 正准备编写第一个MySQL应用的初学者推荐这本书, 还要向富有经验的用户推荐这本书, 他们已经对基于MySQL的应用作过一些调优的工作, 现在正需要在这个方向上再前进“一小步
我们不想让这本书只是一本SQL人门书, 不想让这本书的书名随意使用一些时限词语来开始或结尾(例如“......只需30天”,“7天内提高……“),也不想说服读者什么,最主要的,我们希望这本书能帮助你把技能提高一个层次, 用MySQL构建出快速, 可用的系统——它能解答类似这样的问题:“我怎么才能搭建起一个MySQL服务器集群,它能处理数以百万计的请求,哪怕有几台服务器宕机时,它仍然能正常提供服务?”我们编写本书的着眼点不仅在于迎合MySQL应用开发人员的需求, 还在于满足MySQL管理员的严格要求,管理员需要不管开发人员和用户怎么折腾,服务器都能挂在线上正常运行。如前所述,我们假定你已经具备了一些MySQL的相关经验, 比较理想的就是你已经读过一本MySQL方面的人门书。我们同样也假定你具备一些常用的系统管理, 网络和Unix风格操作系统等方面的经验,经过修订、扩充后的第二版对于第一版里的所有主题都作了更深入的讲解,井增加了一些新的主题,这也部分地反映了自本书首次出版之后, MySQL世界发生的一些变化:MySQL现在已经成为软件中更大更复杂的一部分。如同其重要性一样, 它的普及度也提高了:MySQL社区变得更加庞大, 更多的大企业把MySQL应用到他们的关键业务系统中。自本书第一版发布以后, MySQL已被广泛认同可作为企业级应用(注1) 、人们也越来越多地把MySQL用在互联网应用上, 这些应用若发生故障和其他问题都无法被掩饰过去, 也不能被容忍,作为我们努力的结果,第二版的内容着重点跟第一版略有不同,我们会像强调性能一样,强调可用性和准确性,这部分由于我们自己也把MySQL用在那些运作着巨大金额的业务系统里, 我们对Web应用也有着切身体验,MySQL在这方面正变得越来越普及。第二版里会谈论到在MySQL周边扩展的世界, 而这个世界在第一版编写时还不存在,本书是如何组织的我们把许多复杂的主题放在一本书里,所以,在这里我们要解释一下它们的编排次序,使读者能更易于学习它们,注1:我们觉得这段话更像是市场营销的说,但是,它大概传达了这样一个意思:My5QL对于许多人而言呈得重要了.
前言.
第1章MySQL架构.
译者
1.1 MySQL的逻辑架构.
1.2井发控制.
1.3事务..
1.4多版本并发控制..
1.5 MySQL的存储引擎.
第2章
2.1为什么要进行基准测试..
2.2基准测试策略..
2.3基准测试工具.
2.4基准测试样例..
2.5性能分析(Profiling) .
2.6分析操作系统..
第3章架构优化和索引..
3.1选择优化的数据类型..
3.2索引基础知识..
3.3高性能索引策略.
3.4索引实例研究.
3.5索引和表维护.
3.6正则化和非正则化.
3.7加速ALTER TABLE..
3.8对存储引擎的说明.
第4章查询性能优化..
4.1基本原则:优化数据访问..
4.2重构查询的方式..
4.3查询执行基础知识.
4.4 MySQL查询优化器的限制..
4.5优化特定类型的查询..
4.6查询优化提示.
4.7用户定义变.
第5章MySQL高级特性.
6.6每连接(Per-Connection) 设置调优..
5.1 MySQL查询缓存.
5.2在MySQL中存储代码.
5.3游标.
5.4准备语句.
5.5用户自定义函数..
5.6视图.
5.7字符集和排序规则..
5.8全文搜索.
5.9外健约束.
5.10合并表和分区.
5.11分布式(XA)事务.
第6章优化服务器设置..
7.1什么限制了MySQL的性能.
8.3揭示复制的真相..
8.5复制和容量规.
8.6复制管理和维护..
8.7复制问题和解决方案.
9.1术语..
9.4高可用性.
11.1概况.
11.2要权衡的事项..
12.2账号的基本知识..
12.3操作系统安全.
12.4网络安全.
12.6在Chroot环境里使用MySQL..
6.1配置基础知识..
6.2通用调优原则..
6.3MySQLI/O调优..
6.4 MySQL并发调优..
6.5基于工作负载调优.
第7章
8.1复制概述.
8.2创建复制..
9.2 MySQL的伸缩性.
操作系统和硬件优化.
7.2如何为MySQL选择CPU..
7.3平衡内存和磁盘资源.
7.4为从服务器选择硬件.
7.5RAID性能优化..
7.6存储区域网络和网络附加存储..
7.7使用多个碰盘卷..
7.8网络配置..
7.9选择操作系统..
7.10选择文件系统..
7.11线程处理..
7.12交..
7.13操作系统状态..
viii|目录
第8章复制..
8.4复制拓扑..
8.8复制有多快..
8.9 MySQL复制的未来..
第9章伸缩性与高可用性..
9.3负载平衡.
第10章应用层面的优化..
10.1应用程序性能概述.
10.2Web服务器的议题..
10.3缓存.
10.4扩展MySQL.
10.5可替代的MySQL.
第11章备份与还原.
11.3管理和备份二进制日志.
11.4数据备份.
11.5从备份中还原..
11.6备份和还原的速度.
11.7备份工具..
11.8脚本化备份.
第12章安全..
12.1术语.
12.5数据加密.
第13章MySQL服务器的状态.
Michael Widenius
13.1系统变量.
13.2 SHOW STATUS..
13.3SHOWINNODB STATUS..
13.4 SHOW PROCESS LIST..
13.5SHOWMUTEX STATUS.
13.6复制的状态.
13.7 INFORMATION_SCHEMA..
第14章用于高性能MySQL的工具..
附录A大文件传输..
14.1带界面的工具..-
14.2监控工具.
14.3分析工具..
14.4 MySQL的辅助工具..
14.5更多的信息来源..
附录B使用EXPLAIN.
附录C在MySQL里使用Sphinx..
附录D锁的调试..
索引..