刚刚从出版社得到消息,年初修订的《海量数据库解决方案I 》一书已经出版,这本书的修订工作成就了我和Kamus、崔华的合作友谊,我是满怀着欣喜和期待来等待这本书的到来。

在这本书的序言中,我们曾经写下了一段文字,来继续和这本书的一些缘分和故事,我先在这里和大家分享一下我们的心得与体验吧。

他山之石 可以攻玉-《海量数据库解决方案I》

经过三个月的艰苦努力,我和张乐奕( Kamus )、崔华( dbsnake )最终完成了《海量数据库解决方案 I 》的校订工作,能和两位好友一起字斟句酌逐字逐句的将韩国同仁的名作校订引入中国,于我们于书都是一种缘分与机缘,在校订过程中恩墨科技的罗晓程也协助我们做了大量的审阅文字工作,在此要深深的表示感谢。

在各位读者开始阅读本书之前,我们将接触、接受、校对这本书的感触与来龙去脉记录一下,供大家参详。

Eygle - 推动技术交流分享是一件功德

最早接触到这本书是在 2009 年, 韩国 En-Core公司 的朋友找到我,说他们有一本书已经翻译好,将要在中国出版,希望我能够帮忙审阅并做些推荐,当时我正在新华社进行我的一个项目实施。

我当即表达了我的几个观点,第一,如果是一本好书,我乐于阅读并做评荐,这是我的荣幸;第二,凡是促进技术交流与分享的事情,我都乐于支持并做出力所能及的工作;第三,我愿意义务的去做这样一件事情

韩国的朋友非常愉快的表达了对我的谢意,并向我介绍了这本书,在韩国数据库界,该书的作者李华植 是教父级的人物,而该书更是圣经般的读物,有累计几十万册的销量,读者不仅仅是数据库从业人员,各类技术人员都将之奉为经典和必读。

我不了解韩国,也不懂韩文,但是我相信了他们的说法,并且向韩国的同仁表达了敬意。所有坚持不懈、执着于行的人,都值得我们尊敬。而如果能够促进亚洲数据库界的一些交流,那也是一场功德。

就这样我欣然答应了他们的请求,并期待看到这样一本书的出版。

当 我拿到书稿时,一些新的问题出现了,我发现译文太注重韩文的语言习惯,对于中文读者,阅读起来会非常吃力,甚至会出现难于理解的局面。我建议他们做出进一 步的修订,否则很难传达出作者的本意。基于双方的理解,他们诚挚的邀请我来完成这个校订工作,而经过慎重考虑之后,我认为一个人还不够,我需要一个团队, 张乐奕和崔华成为了我的伙伴,这个团队通过了他们的考察,就这样,我们接下了这个比想象还要艰辛的工作。

从译者的传达,去理解作者的本意,这本就是隔了一层,再加上韩文和中文的语言习惯不同,修订的工作极其艰苦,经常每个小时只能完成 2~3 页的校对修正,然后我们三个人还要交叉校订。这期间的小插曲是,由于张乐奕是日语专业的出身,他能够从该书的日文版借鉴不少东西,互相佐证。

就这样,三个月的时间转瞬即逝,我们的工作也已经接近尾声,我可以说的是,我还从来没有这么认真、字斟句酌的去读一本书,而且是反反复复的阅读,这样阅读的一个好处是,我对这本书的理解和领会比任何其他一本书都要多。

书稿在手里就没有完美的一刻,我们还在不停地修正,直到出版前的最后一刻,我们真挚的希望能够有更多的读者喜欢它。虽然这期间我们已经做出了大量的努力,但是我们仍然不知道读者会如何评价,所以我一直心怀忐忑。

关于这本书,可以说的是,我从中学到了很多东西,作者的很多理念让我受益匪浅,这些学到的东西将会指导和影响我以后的学习之路。

首先这本书并不是仅仅写给数据库从业人员的,作者期望所有对数据库感兴趣的读者都可以流畅的阅读,透彻的理解 , 所以作者在本书中通过大量的类比、比喻将艰深的数据库知识与生活对应起来,使得平时很多不易理解的概念变得浅显。基于深刻的积累,作者能够从不同角度对技 术进行概括和阐释,往往有让人豁然开朗的别样感觉,比如在讲到局部范围扫描时,作者用排队等车用户的顺序以及出租车的出发时间进行类比譬喻,精到而浅显, 任何人都可以一目了然的理解后面蕴含的复杂技术原理,这或许就是作者的本意,技术原本就是对完美生活的引申与抽象

又比如在战略性索引构建一章,作者提到"只要为各个索引分配合理的任务,即使需要创建大量的索引也应当果断地作出决定 ",为索引指定任务使得索引拟人化的变成了一个工人,有明确任务而不是平时我们茫然的创建索引,作者依据这样一个思想展开了整章的内容,这也和我们的优化思路不谋而合,优化到极致的数据库,我们应当知道哪些 SQL 查询会使用到哪些索引,而索引又是为哪些查询服务的,必须详尽了解数据库与应用,才能对应用系统了如指掌、有的放矢。

读 这本书,我们更多的是去理解作者高屋建瓴的数据库设计与优化思想,而不应该拘泥于具体的技术细节,比如作者所说的局部范围处理、战略性索引构建等,这些概 念更多的是将细节的技术原理上升到生活道理与常规的思考,原本很多复杂的技术设计都是可以源自生活中浅显的道理,将技术、生活与常规的思考联系贯穿起来, 在我看来,是作者给我们最大的教益。

最初的一句承诺,导致了数月的锲而不舍,这期间的艰苦也让我们每个人都有所收获,当然更大的收获是我们几个朋友之间的友谊;感谢作者 李华植 带给我们经典的作品,感谢译者郑保卫 ,正是他的初始翻译才使得本书的中文版得以和广大读者见面,感谢本书编辑博文视点的张春雨 ,他坚持不懈的沟通与推动最终促成了本书的最终出版。

愿这本书能为大家带来一些与众不同的感觉与收获!

盖国强      2010 年 7 月 22 日星期四

Kamus - 书读百遍其义自见

在今年( 2010 年)一月份的时候, eygle 跟我说有一本韩国 IT 届教父级的人物撰写的在韩国狂卖 30 万册的数据库技术书籍,出版社希望引进到中国来。而这本韩文书已经有了完整的中文译本,只是这份中文译本需要一些更熟悉 Oracle 数据库技术的人来进行再次修订。当第一次听见这个事情,我以为那就仅仅是校对,对于错别字的校正,对于技术术语把握的问题,我没有想到在真正开始着手以后会是如此的困难。

时间过了 2 个月,到今年的 3 月 份,正式拿到书稿,当开始修订我负责的第三章时,才发现这是一项巨大的工程,并不能说初始翻译很不好,实际上已经很不错了,技术术语基本上也都准确,但是 整段整段的句子读下来,却发现读一遍不明白在说什么,读两遍仍然似懂非懂,读三遍可能才知道哦应该是这个意思。而第三章是占全书比例最大的章节,有一百五 十多页,而即使我全神贯注的去修订,进度也仅仅能够达到一个小时两到三页。之前我工作的环境是在客厅,前面是电视机,而为了修订这本书我不得不将工作环境 转移到书房,因为哪怕是一点点声音的干扰也会让进度更加缓慢。这是我之前没有遇到过的情况,我一向自诩可以一心多用,但是修订这本书我遇到了极大挫折。究 其原因,应该是初始翻译有不少是通篇大量同词语替换的情况,很多的修饰词都不符合中文的语言特点,而这些修饰词极大地干扰了阅读体验。另外一个重要的因素 就是李华植先生在写作这本书的时候,对于很多他想极力阐述给大家的观点都辅以了大量的比喻,用出租车,用运动员,用下棋。。。而这些比喻的生动让阅读者会 情不自禁地将自己代入这个环境,去仔细琢磨这个比喻的后面想表达的真实含义。

为了能够更准确地理解李华植先生原文的意 思,我甚至找来了本书的日文译本出版物(我的大学本科学了四年的日语),在我实在不明白原中文译本的含义时,我会去对照日文是如何翻译这段。有趣的是,通 常这很有效果,我甚至根据日文译本在中文译本中添加了一些文字(也许是原中文译本遗漏了),以便于读者能够更好地理解文章含义。

很令人欣喜的是,在修订的后期我已经能够逐渐跟上李华植先生的思维,甚至对于他的比喻已经心有戚戚,修订的速度也得以提高。更令人欣喜的是,如此字斟句酌地阅读李华植先生的这本著作,让我在 Oracle 数据库性能优化的思想和策略上都学到了很多东西。"书读百遍其义自见"很能贴切地描述修订这本书的过程。

我, eygle ,崔华在三个月中交叉修订,我修订完的第三章 eygle 会再次修订一遍然后传递给崔华,崔华再阅读一遍,同样 eygle 修订完的第四章会给我再重新阅读。我们如此努力,只是希望在最后这本书呈现在大家面前的时候,是一本符合中文阅读习惯的、不需要再像我们这样费劲就能够有所收获的数据库技术书籍。这是辛苦的三个月,但同样是很有意义的三个月。

对于每一位能够将自己的经验写下来分享给读者的作者,我都深深敬佩。我个人虽然一直没有这样的耐性坐下来去真正写一本书,但是我也一直在努力创造一种乐于分享、收获快乐的环境,创办 Oracle 中国用户组 (www.acoug.org ) ,每个月举办免费的活动,邀请演讲者来做技术分享,我一直在努力做自己力所能及的事情。

最后,即使我们如此修订这本书,一定还是会有疏漏的地方,甚至是词不达意或者难以理解的部分,希望读者朋友们能够包容。但是更重要的一点是,在你觉得无法理解的时候,歇一段时间再去读第二遍,第三遍,要知道在我们修订的时候也是这样,"书读百遍其义自见 "。

- 张乐奕( Kamus )          2010 年 7 月 4 日

Dbsnake - 循序渐进始有成

三个多月的时间一晃就过去了,我们也终于完成了《海量数据库解决方案Ⅰ》的修订工作。

当初 kamus 打电话找我,问我是否有兴趣跟他和 eygle 一起去修订一本韩国书的时候,我几乎是不假思索的马上就答应了,当时其实我并不知道要修订的是什么书,也不知道具体的工作量会有多少。满口答应只是因为这是 eygle 和 kamus 找我----我没有理由拒绝。

修 订这本书的时候恰逢我跟进的一个项目上线,白天项目的事情已经是忙的焦头烂额了,修订的工作只能够放在晚上做。等到我真正开始修订的时候,我才发现工作量 真的是太大了,因为几乎是一直处于一种字斟句酌的状态,所以修订的进度非常缓慢,我常常是一个小时才能修订两到三页。怎么办?我怎样才能提高修订的速度, 以至于不耽误整个团队的进度。没有别的办法,我只能压缩我自己的睡眠时间,于是每个工组日我基本上都是 12 点左右入睡,早上 5 点半起床,就这样,坚持了三个多月。

回头想想,我为什么能够坚持下来?除了要信守我自己的承诺之外,另外一个很重要的原因就是我对 Oracle 数据库太感兴趣了,再加上这本书确实是一本难得的好书!我在仔细修订这本书的过程中已经感觉了到了自己的进步,这真的是一件令人非常兴奋的事情!

常常有朋友问我如何才能学好 oracle ?我这里想说的是我也不知道该如何才能学好,因为 oracle 我也只懂一点点。但是当我看到李华植先生将其 20 年的数据库经验毫不保留的写在《海量数据库解决方案》系列中的时候,我觉得我还是应该把我的一点经验写出来,这样也许就能够帮到更多的人。

现在我回想起来,我的 oracle 的入门过程大致是分为四个阶段。

第一阶段:从 2004 年到 2006 年 8 月,我用了大概两年多的时间断断续续的看完了 OCP 9i 的一套培训教材(一共 4 本书)。很惭愧,用了两年多的时间才看完。但是大家要理解我,我本科和研究生都是学数学的, 2004 年以前连最基本的 SQL 都不会写,而且那段时间项目的开发还是有一定的工作量,我基本上只能够利用业余时间自学。

第二阶段:从 2006 年 8 月到 2008 年年初,因为那时候我的 Oracle 已经有了一点基础,所以我开始大量的看 oracle 的各种官方文档,但是这些文档我大都只是过了一遍,唯一的例外就是《 10gR2 Concepts 》和《 Oracle 10gR2 Clusterware and RAC Administration and Deployment Guide 》,这两本书我都分别看过两遍。

第三阶段:从 2008 年年初到现在,我开始在 metalink 上大量阅读文章,在我真正开始接触 metalink 的时候我才发现,哇赛,这是多么精彩的一个世界!在我看来, metalink 就是最好的老师了!直到现在,我工作的第一件事情依然是把 metalink 打开,平常没事就泡在上面,迄今为止,我已经在 metalink 上看过超过 1500 篇文章了。

第四阶段:从 2009 年 3 月到现在,我开始仔细阅读 DSI(Data Server Internals) 教材, DSI 其实我看的并不多,迄今为止,我只看过了如下几本:

DSI303-Advanced Backup,Restore and Recovery Techniques

DSI401-Dumps Crashes and Corruptions

DSI402-Space and Transaction Management

DSI402e-Data types and block structures

DSI403e-Recovery Architecture Components

DSI404e-query_optimizer

DSI405-Performance Tuning

总的感觉是 DSI 没什么,真的没有我想像的那么难。但是这里我想说的是 DSI 应该在你具有一定的基础后才开始看,早看反而无益!

前前后后六年的时间,当我看完 DSI405 后,我真的觉得自己的 oracle 已经入门了。其实细心的朋友已经可以发现,我的 Oracle 的入门的过程用一句话来概括就是"循序渐进"。

当我看完 DSI 系列并且在我的个人网站( www.dbsnake.com )上撰写了 100 多篇文章后,我终于迎来了属于我自己的机会----我结识了 eygle 和 kamus ,并且有机会和他们一起开始迎接许多梦寐以求挑战。

一直以来, eygle 和 kamus 都是我努力的目标,修订的这三个多月虽然辛苦,但是能和自己的知音益友一起做事情,于我而言是非常荣幸也是非常开心的事情,再辛苦又算得了什么?

这次我修订了第一部分的第一章、第二章和第 二部分的第二章,交叉修订了第一部分的第三章。在修订过程中,我付出了大量的努力,以自己所学、所知去理解传达作者的真知灼见,然而再怎么尽心竭力,我们 的工作也难免存在种种不足,但是我确确实实已经尽力,剩下的只能交给读者去评判吧。

虽然这次修订的过程是极其痛苦的,在殚精竭虑之后常常会感觉很崩溃,但是如果能有机会让我继续修订《海量数据库解决方案Ⅱ / Ⅲ》,我非常愿意再多崩溃几次。

----     崔华 (dbsnake)         2010 年 6 月 29 日

好了,这就是几位校对者的心声,现在这本书已经翻阅了山川、民族与语言的障碍,来到中国读者的面前,让我们一起来阅读和领会一下来自亚洲的数据库界的声音吧!

历史上的今天...
      >> 2008-10-28 文章:

Oracle Express版本的数据库选件
增加MT MTOnThisDay插件 - 显示历史记录

>> 2006-10-28 文章:

怀柔百泉山 秋意方正浓

>> 2005-10-28 文章:

EMC CX500再扩容量2T
Symantec VISION 2005 China下月召开

Oracle HowTo:如何在Oracle10g中启动和关闭OEM

他山之石 可以攻玉-《海量数据库解决方案》相关推荐

  1. 【算法实践】他山之石, 可以攻玉 -- 利用完全二叉树快速实现堆排序

    前言 什么是堆 堆是一种数据结构,它是完全二叉树或者是近似完全二叉树的一种数据结构,树中每个结点的值都不小于(或不大于)其左右孩子结点的值. 何为完全二叉树 完全二叉树是一种特殊的二叉树,完全二叉树是 ...

  2. 一探B站后台架构, 他山之石, 何以攻玉? -- 仅从一个一线Golang开发者的角度谈B站4.22代码

    4月22日, B站部分后台源代码因为某愤怒的员工, 被上传至Github. 本文我们不讨论安全, 法律, 去恶意攻击或者获利是违法的! 我们工作时也要注意代码安全), 我仅从开发者的角度谈谈, 这份代 ...

  3. 数据中心节能专题—他山之石可以攻玉

    电机是耗电量最大的单种类设备.根据国际能源署最近的一项调查,电机耗电量占据工业领域耗电量的大约三分之二,如上所述,占大约 46% 的全球耗电量. 随着数字化生活的推进,数据中心已成为不疏于工业企业的用 ...

  4. 他山之石可以攻玉, 不可不读的阿里云原生中间件行业案例与实践集锦

    简介:阿里云原生中间件行业案例与实践集锦 1.[在线教育行业]Timing App的Serverless实践案例 在用户.流量爆发式增长背景下,Timing App面临着四大挑战: 系统稳定性差.产品 ...

  5. 海量数据库解决方案2011032301

    [摘抄] Hash Join:哈希连接的最大优点就是在连接海量数据表或表中的数据存储比较分散时比较有效 Semi Join:这里是广义半连接,即由各种运算符所构成的子查询与主查询之间的连接. 笛卡尔连 ...

  6. 海量数据库解决方案2011031701

    [摘抄] 执行计划是指从表中读出数据并且生成查询语句所要求结果的查询路径 类型分: 扫描的执行计划 表连接的执行计划 各种运算的执行计划 特殊执行计划 扫描的基本类型: 全表扫描(Full Table ...

  7. 海量数据库解决方案2011030401

    [摘抄] 基于自定义的函数索引 就是基于加工过的逻辑列所创建的索引而已,看来,在创建索引时并不是只能基于表中的物理列来创建索引.(Oracle) 其是基于函数或公式的运算结果而创建的一种B-Tree索 ...

  8. 海量数据库解决方案2011030101

    [摘抄] 索引的真正意义:索引是优化器在制定执行计划时,为了寻找最优化的路径而使用的战略要素. 类型: B-Tree索引 位图索引(Bitmap) B-Tree聚簇索引 哈希聚簇索引 反向键索引 位图 ...

  9. 海量数据库解决方案2011022101

    [摘抄] [From数据的存储结构和特征] 1.所谓的表和索引分离型的存储结构其实就是堆表,即用来存储数据的表和为了快速查找特定数据而使用的索引完全作为不同的对象来存储. 堆表最大特点:数据的存储独立 ...

  10. 个人第一次作业——“他山之石,可以攻玉”

    --------------------------- 这个作业属于哪个课程| <课程的链接> ---- | ---- 这个作业要求在哪里| <作业的要求> 我在这个课程的目标 ...

最新文章

  1. linux下cuda与cudnn安装
  2. windows系统中,在当前目录下打开cmd命令行的两种方法
  3. nyoj 715 Adjacent Bit Counts
  4. PHP解析JSON数据的源代码
  5. 单词前后位置颠倒,大小写颠倒
  6. 51..分治算法练习:  4378 【Laoguo】循环比赛
  7. 小程序picker标题_微信小程序-自定义picker选择器
  8. 03-Flutter移动电商实战-底部导航栏制作
  9. [转载]《不要一辈子靠技术生存》
  10. ctf-HITCON-2016-houseoforange学习
  11. java安卓图片全屏_在Android中全屏显示GIF图片(演示代码)
  12. java map中套map_Java Map – Java中的Map
  13. 求解偏微分方程开源有限元软件deal.II学习--Step 12
  14. POJ 1002 电话号码字符串处理
  15. 视觉在无人驾驶中的应用及分类_紫外光在机器视觉中的应用
  16. 索尼z3c d5833港版救砖强刷说明
  17. Vue——商品详情页(未完,写着以免忘掉)
  18. 科目二需要注意的点(笔记包含图片讲解)
  19. 小程序开发API之生物认证(指纹)
  20. 【杂谈】诗集序以及一点杂谈

热门文章

  1. 基于数组的一个简单增删改查
  2. mysql 核对_mysql索引 (校验规则引发的血案)
  3. CMU 15-213 Introduction to Computer Systems学习笔记(8) Machine-Level Programming-Advanced
  4. Java学习笔记之设计模式(7)单例模式
  5. python创建线程_Python 创建线程的方法
  6. 报头中的偏移量作用_网络中BN层的作用
  7. android调weex方法,Android集成weex汇总
  8. Nginx配置基础认证
  9. GCD and LCM HDU 4497 数论
  10. Scrapy爬取多层级网页内容的方式