高性能MySQL(第二版)

当前位置:首页 > 网络编程 > 数据库 > 高性能MySQL(第二版)

出版社:电子工业出版社
出版日期:2010年1月
ISBN:9787121102455
作者:Baron Schwartz,Peter Zaitsev,Vadim Tkachenko,Jeremy D.Zawodny,Arjen Lent,Derek J.Ballin
页数:530页

书籍目录


前言
第1章:MySQL架构
1.1 MySQL的逻辑架构
1.2 并发控制
1.3 事务
1.4 多版本并发控制
1.5 MySQL的存储引擎
第2章:寻找瓶颈:基准测试(Benchmarking)与性能分析(Profiling)
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高级特性
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章:优化服务器设置
6.1 配置基础知识
6.2 通用调优原则
6.3 MySQL I/O调优
6.4 MySQL并发调优
6.5 基于工作负载调优
6.6 每联接(Per-Connection)设置调优
第7章:操作系统和硬件优化
7.1 什么限制了MySQL的性能
7.2 如何为MySQL选择CPU
7.3 平衡内存和磁盘资源
7.4 为从服务器选择硬件
7.5 RAID性能优化
7.6 存储区域网络和网络附加存储
7.7 使用多个磁盘卷
7.8 网络配置
7.9 选择操作系统
7.10 选择文件系统
7.11 线程处理
7.12 交换
7.13 操作系统状态
第8章:复制
8.1 复制概述
8.2 创建复制
8.3 揭示复制的真相
8.4 复制拓扑
8.5 复制和容量规划
8.6 复制管理和维护
8.7 复制问题和解决方案
8.8 复制有多快
8.9 MySQL复制的未来
第9章:伸缩性与高可用性
9.1 术语
9.2 MySQL的伸缩性
9.3 负载平衡
9.4 高可用性
第10章:应用层面的优化
10.1 应用程序性能概述
10.2 Web服务器的议题
10.3 缓存
10.4 扩展MySQL
10.5 可替代的MySQL
第11章:备份与还原
11.1 概况
11.2 要权衡的事项
11.3 管理和备份二进制日志
11.4 数据备份
11.5 从备份中还原
11.6 备份和还原的速度
11.7 备份工具
11.8 脚本化备份
第12章:安全
12.1 术语
12.2 账号的基本知识
12.3 操作系统安全
12.4 网络安全
12.5 数据加密
12.6 在Chroot环境里使用MySQL
第13章:MySQL服务器的状态
13.1 系统变量
13.2 SHOW STATUS
13.3 SHOW INNODB STATUS
13.4 SHOW PROCESSLIST
13.5 SHOW MUTEX STATUS
13.6 复制的状态
13.7 INFORMATION_SCHEMA
第14章:用于高性能MySQL的工具
14.1 带界面的工具
14.2 监控工具
14.3 分析工具
14.4 MySQL的辅助工具
14.5 更多的信息来源
附录A:大文件传输
附录B:使用EXPLAIN
附录C:在MySQL里使用Sphinx
附录D:锁的调试
索引
收起全部

前言

对于这本书,我们在头脑里有好几个目标。其中的大多数源于我们一直想要有一本在书架上寻找却总是找不到的神话般完美的MySQL书,其他几个目标来自于想把我们的经验分享给那些把MySQL用在他们环境中的用户。我们不想让这本书只是一本SQL入门书,不想让这本书的书名随意使用一些时限词语来开始或结尾(例如“……只需30天”,“7天内提高……”),也不想说服读者什么。最主要的,我们希望这本书能帮助你把技能提高一个层次,用MySQL构建出快速、可用的系统——它能解答类似这样的问题:“我怎么才能搭建起一个MySQL服务器集群,它能处理数以百万计的请求,哪怕有几台服务器宕机时,它仍然能正常提供服务?”我们编写本书的着眼点不仅在于迎合 MySQL应用开发人员的需求,还在于满足MySQL管理员的严格要求,管理员需要不管开发人员和用户怎么折腾,服务器都能挂在线上正常运行。如前所述,我们假定你已经具备了一些MySQL的相关经验,比较理想的就是你已经读过一本MySQL方面的入门书。我们同样也假定你具备一些常用的系统管理、网络和 Unix风格操作系统等方面的经验。经过修订、扩充后的第二版对于第一版里的所有主题都作了更深入的讲解,并增加了一些新的主题。这也部分地反映了自本书首次出版之后,MySQL世界发生的一些变化:MySQL现在已经成为软件中更大更复杂的一部分。如同其重要性一样,它的普及度也提高了:MySQL社区变得更加庞大,更多的大企业把MySQL应用到他们的关键业务系统中。自本书第一版发布以后,MySQL已被广泛认同可作为企业级应用。人们也越来越多地把MySQL用在互联网应用上,这些应用若发生故障和其他问题都无法被掩饰过去,也不能被容忍。作为我们努力的结果,第二版的内容着重点跟第一版略有不同。我们会像强调性能一样,强调可用性和准确性,这部分由于我们自己也把MySQL用在那些运作着巨大金额的业务系统里。我们对Web应用也有着切身体验,MySQL在这方面正变得越来越普及。第二版里会谈论到在MySQL周边扩展的世界,而这个世界在第一版编写时还不存在。 我认识 Peter、Vadim和Arjen已经有很长一段时间,见证了他们长久以来在自己项目上使用MySQL和为各类高标准客户调优MySQL服务器的历史。另一方面,Baron为增强MySQL的功能编写了许多客户端软件。作者们的专业背景清晰地反映在了彻底重写《High Performance MySQL: Optimizations, Replication,Backups,and More》第二版的工作里。这本书不只告诉你如何优化工作,从而能比以前更好地使用MySQL,作者们还做了大量额外的工作,亲自编制执行基准测试,并将结果发布出来以佐证他们的观点。这些信息让读者可以借此获悉许多很有价值的MySQL内部工作机制——这在其他书中是难以得到的;同样,这些信息也能帮助读者避开那些在将来会引发糟糕性能的错误。我不但要向刚刚接触MySQL服务器,正准备编写第一个MySQL应用的初学者推荐这本书,还要向富有经验的用户推荐这本书,他们已经对基于MySQL的应用作过一些调优的工作,现在正需要在这个方向上再前进“一小步”。-Michael Widenius2008年3月 在进入MySQL世界之前,先照例介绍一下MySQL的历史(况且本书里也没提到这些)。真正以MySQL为名的数据库是从1994年开始开发的,并于1995年第一次呈现在小范围的用户面前,它的开发者刚好不是美国人,而是两个瑞典人Michael Widenius 和 David Axmark。那时的MySQL还非常简陋,除了在一个表上做一些Insert、Update、Delete和Select操作,恐怕没有更多的功能给用户使用。这种情况直到2001年左右发布3.23版的时候,才有了显著的进步——它支持大多数的基本SQL操作了,而且还集成了我们现在熟识的 MyISAM和InnoDB存储引擎。然后又是几年不断完善的过程,到了2004年10月,这个夯实基础的过程到达了顶峰——4.1这个经典版本发布了。次年10月,又一里程碑式的MySQL版本发布了,在新出的MySQL 5.0 里加入了游标、存储过程、触发器、视图和事务的支持,准备进入中高端应用领域。在5.0之后的版本里,MySQL明确地表现出迈向高性能数据库的发展步伐。到今天,MySQL已经上升到了600多万的装机量,著名的WordPress、phpBB都以MySQL为后台数据库,很多大型的WWW应用例如Wikipedia、Google和Facebook,也都采用了MySQL作为它们的数据存储系统。反观国内,鉴于心照不宣的原因,MySQL的普及程度还不如SQL Server。就我这些年来的所见所闻而言,一直作为MySQL黄金搭档的PHP都常常使用别的数据库,更别提其他开发语言了。好在那些上规模企业,尤其是外资企业里,多数明智的IT负责人在项目前期都会提议使用MySQL,原因之一是它是免费的,一般不会产生授权费用问题,原因之二是它足够用了,不是吗?你想要的增、删、改、联接(Joint)、嵌套查询它都有;你想要的视图、存储过程、触发器、事务它也有;如果你要集群,它也能提供。但是,使用MySQL是一回事,用好MySQL又是另外一回事。市面上更多的是关于MySQL开发的书籍,这些书籍的很多篇幅都花费在SQL语句的学习上。若要获得关于MySQL性能提高方面的资料,我们只能在网上的各个论坛或博客上披沙拣金了,而本书则系统性地从各个方面讲述一个高性能MySQL应用应该怎么来做。作者们都是这方面的行家里手,所以内容也是全面、充实,无论是架构师设计师、程序开发人员,还是系统管理员都能找到感兴趣的方面。在阅读正文前,最好能够先读一下作者精心编写的前言部分,通过它把握整本书内容的构成方式和相互关联,之后,带有目的性地阅读本书会更富有成效。本书由李军、王小东、康建勋三人合作翻译完成,其中,康建勋翻译第1章和第2章前31页;王小东翻译第2章的后17页,以及第3章至第8章;李军翻译了序言、前言、第 9章至第14章、所有附录,以及作者介绍、封面、封底等内容,并撰写了内容简介。翻译的过程也是译者与编辑、审阅人员之间交互的过程,在这个过程里,编辑徐定翔老师,审阅人金照林老师、柳安意老师给予了我们很大的帮助。如果说译者是生产毛坯的工匠,那么他们就是把毛坯打磨成精品呈现给读者的人,在此十分感谢他们!同样地,我们也要感谢家人和朋友。我们把那些本来应该陪伴家人出游,或者参加朋友聚会的时间,都“自私”地用在翻译本书上了。他们都比较宽容,一句“到时要请客哦”就原谅了我们,谢谢他们的支持!最后,得向读者们说声抱歉,由于术业专攻不同、识见浅深有别之故,译文中难免会有诘屈聱牙、词不达意甚至疏误之处,还请读者不吝指正。译者2009年12月

内容概要

Baron Schwartz 是一名软件工程师,他住在弗吉尼亚州的Charlottesville,在网上用的名字是Xaprb,这是他名字的第一部分按QWERTY键盘的顺序打在Dvorak键盘上时显示出来的名字。当他不忙于解决有趣的编程挑战时,Baron就会和他的妻子Lynn、狗Carbon一起享受闲暇时光。他的关于软件工程的博客地址是http://www.xaprb.com/blog。
Peter Zaitsev,MySQL AB公司高性能组的前任经理,现正运作着mysqlperformanceblog.com 网站。他擅长于帮助管理员为每天有着数以百万计访问量的网站修补漏洞,使用数百台服务器来处理TB级的数据。他常常为了找到一个解决方案而修改和升级软硬件(比如查询优化)。Peter还经常在讨论会上发表演讲。
Vadim Tkachenko,Percona公司的合伙人,该公司是一家专业的MySQL性能咨询公司。他过去是MySQL AB公司的性能工程师。作为一名在多线程编程和同步领域里的专家,他的主要工作是基准测试、特征分析和找出系统瓶颈。他还在性能监控和调优方面做着一些工作,使MySQL在多个CPU上更具有伸缩性。
Jeremy D. Zawodny和他的两只猫在1999年底从俄亥俄州的西北部搬到了硅谷,这样他就能为Yahoo!工作了——那时他刚好亲眼见证了.com泡沫的破灭。他在Yahoo!工作了八年半,将MySQL和其他开源技术组合起来使用,找到有趣的、令人兴奋的用途,而它们往往也是很大的用途。
近段时间,他重新发掘出了对飞行的热爱。其实,早在2003年年初,他就已经取得了私人滑翔机飞行员的执照,2005年获得商业飞行员的定级。从那时起,他花了大量的空闲时间驾驶滑翔机,飞翔在Hollister、加利福尼亚和Tahoe湖地区上空。他偶尔还会驾驶单引擎轻型飞机,和别人共同拥有一架Citabria 7KCAB和一架Cessna 182。临时的咨询工作可以帮助他支付飞行账单。
Jeremy和他可人的妻子及四只猫生活在加州的旧金山湾区。他的博客地址是jeremy.zawodny.com/blog。
Arjen Lentz 出生在阿姆斯特丹,但从千禧年以来他和他美丽的女儿Phoebe、黑猫 Figaro一直生活在澳大利亚的Queensland。Arjen最初是C程序员,在MySQL AB公司(2001-2007)里是第25号职员。在2007年短暂的休息之后,Arjen创建了Open Query(http://openquery.com.au),该公司致力于在亚太及临近地区开发和提供数据管理培训和咨询服务。Arjen也经常在讨论会和用户群中发表讲演。在充裕的闲暇时间里,Arjen热衷于烹饪、园艺、阅读、露营,以及研究RepRap。他的博客地址是http://arjen-lentz.livejournal.com。
Derek J. Balling自1996年以来就一直是Linux系统管理员。他协助Yahoo!那样的公司和Vassar学院那样的机构建立和维护服务器基础设施,也曾为Perl杂志和其他一些在线杂志撰写文章,并一直为LISA(Large Installation System Administration)会议的编程委员会服务。目前,他作为数据中心经理受雇于Answers.com。
当不做与计算机有关的事情时,Derek喜欢和他的妻子Debbie及他们的动物群(四只猫和一只狗)在一起。在博客http://blog.megacity.org上,他也会对当前热点发出评论或写些近来惹恼他的事情。

作者简介

本书荣获2009年Jolt图书大奖,是不可多得的分享MySQL实用经验的图书。它不但可以帮助MySQL初学者提高使用技巧,更为有经验的MySQL DBA指出了开发高性能MySQL应用的途径。全书包含14章和4个附录,内容覆盖MySQL系统架构、设计应用技巧、SQL语句优化、服务器性能调优、系统配置管理和安全设置、监控分析,以及复制、扩展和备份/还原等主题,每一章的内容自成体系,适合各领域技术人员作选择性的阅读。
汇聚著名MySQL专家在实践中构建大型系统的多年经验。
剖析MySQL内部工作机制,指导读者MySQL开发出快速可靠的系统。
实例讲解MySQL实用又安全的高性能之路。

图书封面


 高性能MySQL(第二版)下载 精选章节试读 更多精彩书评



发布书评

 
 

精彩书评 (总计10条)

  •     书是好书,但是翻译太烂了建议大家还是看英文原版吧书想覆盖的东西太多了,从存储引擎到硬件到优化所以我觉得都是点到为止而已,不是太深入因此我反而觉得适合一些初级用户而非高级用户不关怎么说英文原版书还是值得推荐的
  •     翻译这本书需要很强的专业知识,mysql不用说了,算法,计算机组成原理等。我敢说这几位翻译的作者计算机知识不好,英语基础也烂,翻译的真恶心,糟蹋这么经典这么权威的书了。强烈建议看原版!
  •     这本书基本上涵盖了MySQL 的各个方面,以InnoDB 为主。MyISAM 也有不少涉及。其他的引擎 基本没什么东西。这本书对我来讲比较有意义的是MySQL 之外的部分。很多数据库设计、维护方面通用的理念 。这比《ORACLE 9i/10g》 好得多,它只是讲了ORACLE的东西。

精彩短评 (总计92条)

  •     内容较深,一般用户用处不大。收到时封面的灰尘较多。发送的速度还是挺快的,2-3天就到了。
  •     内容不错,书的纸质也不错
  •     我甚至怀疑里面的人 小学毕业了没有,里面的话按中文逻辑都解释不清楚。看的我想骂娘。覆盖索引那节翻译的前后矛盾,真是佩服译者的中文水平,真TM牛逼。中文写的中国人都看不懂。
  •     书里描述了很多关于MYSQL性能调优的技术细节,非常适合一线工作的DBA和软件开发人员使用,不太适合初学者。
  •     我越看越别扭啊。。完全没办法仔细琢磨……
    只能粗粗翻一遍过去了
  •     还好没买。。。
  •     水很深啊
  •     这边书看的我崩溃!!三位译者,别再糟蹋好东西了行吗!!
    出版社要重印还是请人从头翻译吧,这次翻译的勘误已经漫天飞了!
  •     很好的书
  •     已经看了一半了,感觉挺好的,就是里面有错字,漏字,还好,不多,
  •     还是有些没读懂
  •     还不错,买了没怎么看。
  •     很大很全,并没有完全看完,其实稍微看一下就好,有时间多看官方手册以及多实践才是正道
  •     这两周在看这本垃圾书(翻译本),向来对它的翻译心存质疑。今天看到一个地方,查了一下原版,怒了。竟然“是和否”都不分。2012年1月2版的书中,第190页,原文是203页。有写道: but can be useful if you are not allowed to install any new programs on a machine and can enable ssh on your servers.
    翻译竟然是:但如果机器上不能安装新程序且服务器上无法启用ssh。。。。 原文是can enable。。。它的翻译竟然是“无法启用”。。。。在翻查原文的时候在这里想了好久。
    还想吐槽一下,它那书上关联词有十分严重的问题,全是E 文的一套。例如,有“虽然"就没有"但是",有"尽管"就没有"可是"。 在这里只想说,某些人糟蹋了一本好书。。糙。
  •       整体还好,内容很多很光,要有一点点数据库方面的基础看更好,不过翻译的不是很地道。前面5章是基础,重点在3,4,5章,以后再看看这本书的第三版以及《 SQL Performance Explained 》。
  •     比MySQL手册还要更贴近处理问题,这本书介绍了不少监测与测试数据库方法,很实用!
  •     还是楼主看的仔细,学习了,赞一个!
  •     binary search 二进制搜索?什么搜索法?
  •     理论性很强...且能在实际工作中所使用。
  •     学习ing
  •     没怎么看懂
  •     只看了三四五六章
  •     主要的几位译者都是阿里的高级DBA乃至MySQL源码级开发人员,不过似乎审阅态度以及翻译水平还需提高,期待下一版翻译,毕竟如此巨著~
  •     DB
  •     里面原理什么的讲得很清楚 看到后面感觉有些地方翻译得有些奇怪 翻出来不像中国话的思路。。。
  •     只看了100来页, 看不懂表示
  •     读了几章,翻译得不行,后面的实践性太强还是以后再看吧
  •     内容比较使用
  •     实在受不了,我也去啃e文了。。
  •     至今读过最好的一本关于mysql图书,我买的是第三版。没有特别深奥的东西;感觉都是一些比较熟悉的内容,但是这边书够厚作了总结,有了整体的理解。非常不错
  •     前九章有必要再读一遍!!
  •     买了4本,没有一本是新的
  •     字斟句酌,扛鼎之作
  •     适合DBA和开发的好书。翻译糟糕了点。
  •     不知道是不是理解能力不够,这翻译得真心看不懂
  •     书的内容还不错,就是错字有些多,看的时候要小心了。最好是有一定的数据库基础才看,要不然被错别字忽悠了还在那里偷着乐呢。
  •     没有详细的看完此书 但在MySQL社区,这本书的地位很高,本书并不是分开讲述各个引擎的,适合DB的开发和管理人员对整个MySQL加深理解 (不适合初学,初学者慎入....)
  •     当然mysql文档上都有讲,讲的也更加清楚,如果你愿意读英文文档的话
  •     MySQL DBA必读
  •     翻译的质量确实不好, 应该是那种老师带着学生当毕业设计那样翻译完成的
  •     读的很快,因为只是想粗略了解一些优化办法和原理,所以没深入,是本好书。美中不足的是中文版翻译实在是不忍直黑,我只能顺着他们拗口的翻译回推原先是什么意思
  •     内容很丰富,值得深入研究
  •     我是一个爱书的人,这本书的封面安装有点错位。看着心里很不爽,而且以前买卓越的书,包装都很好,这次买的书包装和物流很差,买来书都有了很多划痕。而且激光防伪标志有明显的更换迹象,不知道什么原因。
  •     店庆抢购的,很给力
  •     最好的mysql书籍
  •     到货很快 服务态度好 书的包装很很好 内容还没看 应该不会很差
  •     对于一直是用Mysql的我来说,非常实用的一本书。系统的了解下Mysql.
  •     要学mysql必读之书,要成为mysql高手,那细读这本书。涵盖的内容不只是mysql本生,还有服务器系统,硬件等各类优化指导建议。
  •     高性能MYSQL第二版
  •     看过的收获最大的mysql书,有机会再读一遍。但是翻译有些不太好,不同人翻译不同的章节,导致对同一个东西前后解释不同。
  •     你确定你能看懂中文版?
  •       几个网站都缺货!
      几个网站都缺货!
      几个网站都缺货!
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
      抱歉,你的评论太短了
  •     我刚看了第一章,看得很别扭,很纠结。
  •     我承认,我英语不牛,所以买了中文版,但连我这种英语水平的人都能看得出这本书翻译错误连篇,真怀疑他们是不是直接Google翻译-打印-装订的。
  •     程序员必备
  •     书确实不错,唯一美中不足的是:老外的书,翻译过来难免有些地方佶屈聱牙。英文好的话还是看英文版吧,英文不行就凑合吧。
  •     受益匪浅,前7章适合所有开发人员,后几章偏运维
  •     mysql性能优化,很好的,很详细!
  •     不想当运维的开发不是好的小作坊杂工……
  •     读了一部分 还是要结合实际才有意义..
  •     系统地阅读一本关于mysql的性能书籍
  •     部分章节写的很好,接地气
  •     通读了一遍,想要在读
  •     绝对是不可多得的好书……平时这方面的知识只能从各大论坛进行拼凑,遇到实际问题以及时间压迫的情况下,有这样子一本专业的书籍,给的帮助是莫大的~
  •     DBA,必备学习用...
  •     第三版,core version 5.5
  •     书的质量不错,关于MySQL的知识介绍的非常全面。
  •     在日常工作中帮助很大,开拓思路,但需要有一定基础才行。
  •       我买的洋文版的,作为PHPer,看这本书够了,介绍的很详细有木有!!
      DBA和程序员必备,好了我就想说这么多,还想要多少个字才够嘛!?????,还想要多少个字才够嘛!?????,还想要多少个字才够嘛!?????,还想要多少个字才够嘛!?????,还想要多少个字才够嘛!?????,还想要多少个字才够嘛!?????
  •     书不错,纸张很舒服,内容也很不错。但是封面坏掉了。。。
  •     讲的太深了,看了里面的索引,原理一大堆,一次查询只能用一个索引 这种这么重要的东西都没提到,总之新手不适合
  •     悲剧,没查评论直接买了中文版。。。。
  •     好书!很多性能问题作者直接从系统底层讲解关键性,值得多次翻阅。
  •     很好,很多特性没见过没用过
  •     翻译实在太烂了,太烂了
  •       在MySQL社区,这是一本重量级的书,我不知道出版社是怎么挑选译者的,但是很明显,我个人的意见,这次挑选非常的失败。书中98页倒数第4行的"binary search"的翻译(二进制搜索)已经道出了一切,但凡学过计算机的,我估计都不能做出这样的翻译。在计算机领域,二进制是一个专门的术语,有特定的含义。我不仅怀疑译者根本没学过"binary search"算法,以至于只能按字面翻译,我甚至怀疑他们连“二进制”的含义可能也不懂,找这样的人来翻译,真是天大的笑话。
      
      再举一个术语的翻译“secondary index”,书中的译法是“第二索引”,暂且不论惯用的“二级索引”是否是一个标准的译法,假如在主键之外,还有B,C两个索引,如果B叫“第二索引”,那么C就应该叫“第三索引”了?为什么C也叫“第二”呢,难道是并列第二?“第二”在汉语中是一个意思很明确的词,你当然可以说“第二”也能表示“二级”的意思,这种牵强的脱离通用语义的翻译真是对翻译标准“信雅达”中“达”字的讽刺。
      
      关于“达”我们还可以找一个例子,介绍coverring index的部分,译文第96页,原文第124页。原文是“For example,the sakila.actor table uses InnoDB and has an index on last_name, so
      the index can cover queries that retrieve the primary key column actor_id, even
       though that column isn’t technically part of the index”,译文是“例如,sakila.actor表适用了InnoDB并且在last_name上有索引,因此,即使该列不是索引的一部分,索引页可以覆盖取得主键actor_id的查询”,原文读来没有任何的歧义,译文却变了样,第一遍读的时候,你能分辨出“即使该列不是索引的一部分”中的“该列”是指代的“last_name"呢?还是后面出现的"actor_id”呢?将代词放在指代的名词之前出现,这绝对是对人的智力的挑战,即便是诗歌,我也没见汉语中有多少这样的用法,遑论技术性文字。在原文中"that column"这个代词出现在了"actor_id"之后,不知道为什么在译文中,代词就钻到了指代的名词之前。
      
      如果可以抛开“达”,还要争辩词的译法是“见仁见智”的,那么对“信”的违背则已经使这本重量级巨著的翻译失去了最基本的存在价值,随便举两个例子:
      1. 4.6查询提示优化对HIGH_PRIORITY的描述,译本第152页,原书第195页,原文是“HIGH_PRIORITY tells MySQL to schedule a SELECT statement before other statements that may be waiting for locks, so they can modify data.”,译文是“HIGH_PRIORITY告诉MySQL将SELECT语句放在其他语句的前面,以便它修改数据”,原文中的“so they can modify data"变成了"以便它可以修改数据",复数形式的they变成了单数形式的"它",这个改变虽然细微,但直接影响了这个位置的代词所指代的主语,这个代词到底是"SELECT statement"呢?还是"other statements that may be waiting for locks"?原文中当然是其他能modify data的statements,而到了疑问中,变成了"SELECT statement",问一个菜鸟级的问题,select statement能modify data吗?
      
      2. 还是4.6查询提示优化,对DELAYED的描述,译文第152页,原文第196页。原文是"It lets the statement to which it is applied return immediately and places the inserted rows into a buffer, which will be inserted in bulk when the table is free",译文是"应用了这个提示的语句会立即返回并将待插入的列放入缓冲区,在表空闲的时候再执行插入",粗看没什么问题,细看问题一大堆。
      2.1 在原文中,主语是it,指代的是"DELAYED"这个hint,到了译文中,主语从"提示"本身变成了"应用了这个提示的语句",于是在原文中的"delayed"这个hint一方面使语句立即返回,另一方面使MySQL在后台处理被缓存的数据两层意思变成了语句一方面返回,另一方面“将待插入的列放入缓冲区”,到底是"DELAYED"使数据被插入buffer,还是应用了"DELAYED"的语句使数据被插入了buffer,区别虽然微妙,但区别就是区别,译文的意思与原文已差之毫厘,谬以千里。
      2.2 原文中"which will be inserted in bulk..."是一个被动语态,指数据被插入,主语没有明确指出,在上下文环境中当然是数据库;而到了译文中,“在表空闲的时候再执行插入”是一个主动的语态,“谁”执行了插入?如果和上句连起来,很容易理解成“应用了这个提示的语句在表空闲的时候再执行插入”,这不是扯淡吗?当然,稍微有点数据库常识的人都不会这样理解,但原文原本语义清晰,翻译过来却主语混乱,实在令人难以接受。
      2.2 在原文中的"rows",一个复数形式的词,到了译文中,变成了"列",假如说复数变单数还能接受,把"row"翻译成"列"真是天才的创举。
      2.3 原文中"will be inserted in bulk when ..."明确指出了insert的方式是"in bulk",但是这个信息在译文中丢失了。
      
      类似的问题简直处处可见,原文的文字简洁清晰,非常容易理解,但我读到的译文却非常难以理解,更可恨的是,原文中大量的信息被扭曲,抛弃。“信雅达”这三标准没有一个做到。我个人的总结是,这个译本的水平跟中国足球的水平一样,能把球停在百米开外,一个字,糙。
      
      客观地说,这本书至少将MySQL优化的知识在中国的传播门槛大大降低,但咱不是黄莺,不会唱赞歌,既然是书评,就是要来挑刺的,看不到刺,容不得刺,电子工业永远没有赶上O'Relly的机会,中国的技术书籍永远都只能是菜鸟水平。
  •     mysql性能优化经验
  •     内容很充实,很好。正在阅读中,感觉对工作有很大帮助。
  •     MySQL DBA、开发者必读
  •     主要看了一到五章,对MySQL的索引和查询优化方面有了更深的认识,读书笔记整理在印象笔记中。
  •     价格便宜,送货很快!!!
  •     如果想深入学习mysql数据库,强烈推荐这本书。不管是原理还是实践,都有很好的涉及。巨赞
  •     讲的很详细,虽然有些翻译不怎么样,但不影响阅读,适合有一定经验的dba阅读
  •     提升内功的不二选择
  •     精读4,5,6章,功力大增。
  •     经典之作,很全面
  •     : TP311.138/0214
  •     没想到第一次在卓越上买书,竟然是一本二手书,非常的明显,书都破损了
  •     深入学习MySQL
  •     谨慎购买,可能是译者水平的问题,很多错误!我看了4页发现3出错误,一处把myisam_sort_buffer_size写成myisam_buffer_size一处语义错误,一处Linux路径错误,没有一定mysql+Linux基础的,建议远离这本书.还是凑合着看原版书吧
  •     看了基础只是,关于配置和复制备份系统方面的知识以后遇到再学,不过基础知识方面,最近还得再看一遍
  •     相对来说不错的一本
 

军事,图形图像/视频,娛樂時尚,财政税收,地方史志,小学一年级,建筑科学,高考PDF图书下载,。 PDF图书网 

PDF图书网 @ 2017