第一图书网

海量数据库解决方案

李华植 电子工业出版社
出版时间:

2010-10  

出版社:

电子工业出版社  

作者:

李华植  

页数:

440  

Tag标签:

无  

前言

这已经是第四次为本书写作者序言了,此时此刻过去20年的生活如同电影般在我的脑海里一一掠过。当我最初决定步入IT领域时就为自己立下了誓言,时至今日回想起多年走过的历程,其间充满了艰辛,也正是这无数的艰辛让我最终体验了收获的愉悦。回望这20多年的足迹,我一直努力用新的视角去观察他人所忽视的领域,尝试用崭新的思维和充满创意的双手去耕耘。尽管如此,也仍然无法紧跟IT技术飞快的发展步伐,我为实现理想而终日不停前行的脚步,虽然忙碌但却无限满足。众所周知,能够加工成宝石的原石比比皆是,一分耕耘,一分收获,每当我们初次接触某个新的东西时都会或多或少有些紧张。因此从这一层面来看,数据库散发着无穷的魅力,它如同渊博精深的智者般质朴,总是以真实、坦诚的心去面对每一位学习和研究它的人。在过去并不短暂的岁月里我一直深信数据库的骨骼就是“数据”,并为这一理论的发展不断努力,吸收同仁们分享的经验而持续奋斗。为了打破始终在理论表面徘徊的固有模式而不断寻求新的尝试,并试图探求能够让IT工作者在实际工作中轻松应用并掌控的巧妙方法。这种巧妙方法不能是只通过经验和试验才能获得的,它必须是利用日常常识就可以理解说明的方法。有这么一句话“会者不难,难者不会”,如果能够把一些复杂的理论与通俗浅显的常识相结合,那么不仅有利于人们的理解,更有利于人们在合适的情况下加以灵活运用。相反,有这么一句话“一知半解以为是”,意思是指那些只观其表不观其里就加以相信的人。很多程序员只忠实地相信自己的经验,当问及为何如此时,大部分人的答案都是“因为我那样做过”或“那样比较好”。10种类型的原理可以组合出10的阶乘(3 628 800)种现象,那么100种类型的原理所能够表现出来的现象数可以认为是一个天文数字。如若仅凭经验去思考问题,无论怎么努力,最终也只能获得其中一部分的原理而已。然而,事实上我们是完全有能力深刻地理解这100种原理的。但如果不试图进行深刻钻研而只停留在表面,最终只能是一无所获。宝石是不会被轻易发现的,只有凭借最大的努力去寻找方能找到。在不知不觉中当我们遇到了从表面上看无法解决的复杂问题时,会出现两种人:其一,是坚持不懈、彻夜不休也要寻找到最佳解决办法的人,这种人通过不懈的努力最终能够获得什么呢?事实上随着岁月的流逝,他们终将成为众人皆知的专家;其二,是认为过于烦琐,直接予以放弃的人,这种人只会让自己的血汗变成廉价的废弃物。可以自豪地说“我付出了常人所无法想象的艰辛”,为了寻求完美的真理舍弃了很多常人的生活。在没有钓到鱼时钓鱼人也许会为此而耿耿于怀,但在我看来问题的关键在于没有寻找到有效的钓鱼方法。如果钓鱼人能够充分理解我的想法,并甘愿为了改变自己的固有观念而付出较大努力,尽管他也可能会为此而花费大量的时间和心血,但坚信他一定能够获得别人所无法获得的成果。如果他研究出了别人所无法研究出的钓鱼方法,那么从此就再也不用为钓不到鱼而担心了。各位读者在工作的同时究竟是否一直在使用一种平凡的方法呢?还是为了解决明天必须要完成的任务而临时抱佛脚呢?现在该到结束这种恶性循环的时候了。应用程序其实就是处理数据的手段而已,它需要紧跟流行的步伐,如不及时进行更新,在不经意之间就已经落伍了。然而数据和数据库并非如此,不论岁月如何流失,我们积攒起来的“内功”是不会消失的。如果能对其原理有一个深刻的理解,那么不论何时何地都能够随心所欲地钓到很多鱼。随着数据库技术的发展进步,能够精确执行指令的DBMS与日俱增,随着对DBMS应用能力的不同所获得的性能差异使我们从技术中获得满足感。

内容概要

本书将整体内容分为两部分,在第1部分中以影响数据读取效率的所有要素为类别,对其各自的概念、原理、 特征、应用准则,以及表的结构特征、多样化的索引类型、优化器的内部作用、优化器为各种结果制定的执行计划予以详细说明,并以对优化器的正确理解为基础,提出对执行计划和执行速度产生最大影响的索引构建战略方案;在第2部分中主要介绍提高数据读取效率的具体战略方案,在这部分中介绍与数据读取效率相关的局部范围扫描的原理和具体应用方法,以及对被认为是提高数据库使用效率基础的表连接的所有类型予以详细说明。 《海量数据库解决方案》系列丛书深受广大读者的喜爱已经长达10年之久,在被誉为“圣经”的同时,它已经变成了数据库用户不可或缺的必读书籍。作者竭力探求能够让IT工作者在实际工作中轻松应用并掌控的巧妙方法,提供事半功倍的海量数据库解决之道。

作者简介

李华植 代表韩国的数据库技术先驱
集基于EA的数据架构方法论之大成
在韩国最早提出了数据专家顾问的概念
现任EN-CORE CONSULTING总经理及代表顾问
曾任韩国Oracle公司担任200多家企业的技术顾问

书籍目录

第1部分 影响数据读取的因素第1章 数据的存储结构和特征 1 1.1 表和索引分离型 5 1.1.1 堆表的结构 5 1.1.2 聚簇因子(Cluster Factor) 10 1.1.3 影响读取的因素 13 1.1.3.1 大范围数据读取的处理方案 14 1.1.3.2 提高聚簇因子的手段 17 1.2 索引组织表(Index-Organized Table) 19 1.2.1 堆表和索引组织表的比较 19 1.2.2 索引组织表的结构和特征 20 1.2.3 逻辑ROWID和物理猜(Physical Guess) 22 1.2.4 溢出区(Overflow Area) 24 1.2.5 索引组织表的创建 25 1.3 聚簇表 26 1.3.1 聚簇表的概念 27 1.3.2 单表聚簇 29 1.3.3 复合表聚簇 31 1.3.4 聚簇表的代价 34 1.3.5 哈希聚簇 39第2章 索引的类型和特征 43 2.1 B-Tree 索引 44 2.1.1 B-Tree 索引的结构 44 2.1.2 B-Tree 索引的应用 47 2.1.3 反向键索引 52 2.2 位图索引 53 2.2.1 位图索引的形成背景 54 2.2.2 位图索引的结构和特征 55 2.2.3 位图索引的读取 57 2.3 基于自定义的函数索引 60 2.3.1 基于自定义的函数索引的概念和结构 60 2.3.2 基于自定义函数索引的约束 61 2.3.3 基于自定义函数索引的灵活运用 64第3章 SQL的执行计划(Explain Plan) 74 3.1 SQL和优化器 75 3.1.1 优化器的作用和人的作用 77 3.1.2 优化器的类型 80 3.1.2.1 基于规则的优化器 82 3.1.2.2 基于成本的优化器 86 3.1.2.3 优化器目标的选择 93 3.1.2.4 执行计划的固定化方案 97 3.1.2.5 优化器的局限 103 3.1.3 优化器的最优化步骤 106 3.1.4 查询语句的转换 112 3.1.4.1 传递性规则 113 3.1.4.2 视图合并(View Merging) 116 3.1.4.3 查看用户定义的绑定变量 122 3.1.5 开发者的作用 123 3.2 执行计划的类型 126 3.2.1 扫描的基本类型 126 3.2.1.1 全表扫描 127 3.2.1.2 ROWID扫描 132 3.2.1.3 索引扫描 133 3.2.1.4 B-Tree聚簇读取(Cluster Access) 138 3.2.1.5 哈希聚簇读取(Hash Cluster Access) 139 3.2.1.6 采样表扫描(Sample Table Scan) 140 3.2.2 表连接的执行计划 143 3.2.2.1 嵌套循环连接(Nested Loops Join) 143 3.2.2.2 排序合并连接(Sort Merge Join) 146 3.2.2.3 哈希连接(Hash Join) 148 3.2.2.4 半连接(Semi Join) 149 3.2.2.5 笛卡儿连接 151 3.2.2.6 外连接(Outer Join) 154 3.2.2.7 索引连接 159 3.2.3 其他运算方式的执行计划 161 3.2.3.1 IN-List迭代执行计划 162 3.2.3.2 连锁执行计划 163 3.2.3.3 远程执行计划 165 3.2.3.4 排序操作执行计划 168 3.2.3.5 集合操作执行计划 171 3.2.3.6 COUNT(STOPKEY)执行计划 174 3.2.4 位图(Bitmap)执行计划 175 3.2.4.1 各种条件运算符的位图执行计划 176 3.2.4.2 子查询执行计划 182 3.2.4.3 与B-Tree索引相结合的执行计划 184 3.2.5 其他特殊处理的执行计划 185 3.2.5.1 递归展开(Recursive Implosion)执行计划 186 3.2.5.2 修改子查询执行计划 191 3.2.5.3 特殊类型的执行计划 193 3.3 执行计划的控制 203 3.3.1 提示的活用准则 204 3.3.2 使用提示实现最优化目标 206 3.3.3 使用提示改变表连接顺序 207 3.3.4 表连接方式选择过程中提示的使用 208 3.3.5 并行操作中提示的使用 209 3.3.6 数据读取方法选择中提示的使用 211 3.3.7 查询转换(Query Transformation)过程中提示的使用 214 3.3.8 其他提示 216第4章 构建索引的战略方案 221 4.1 索引的选定准则 222 4.1.1 不同类型表的索引应用准则 223 4.1.2 离散度和损益分界点 227 4.1.3 索引合并和组合索引的比较 229 4.1.4 组合索引的特征 232 4.1.5 组合索引中列序的决定准则 239 4.1.6 索引选定步骤 242 4.2 决定聚簇类型的准则 263 4.2.1 全局性聚簇 263 4.2.2 局部性聚簇 265 4.2.3 单表聚簇 266 4.2.4 单位聚簇大小的决定 267 4.2.5 确保聚簇被使用的措施 270第2部分 最优化数据读取方案第5章 局部范围扫描(Partial range scan) 274 5.1 局部范围扫描的概念 276 5.2 局部范围扫描的应用原则 281 5.2.1 局部范围扫描的条件 281 5.2.2 不同优化器模式下的局部范围扫描 284 5.3 提高局部范围扫描执行速度的原理 285 5.4 向局部范围扫描引导的方法 289 5.4.1 利用访问路径实现对Sort的代替 289 5.4.2 只使用索引的局部范围扫描 292 5.4.3 MIN、MAX 的处理 293 5.4.4 FILTER型局部范围扫描 298 5.4.5 ROWNUM的灵活运用 300 5.4.6 利用嵌套视图的局部范围扫描 306 5.4.7 利用函数的局部范围扫描 308 5.4.8 利用查询语句二元化特性的局部范围扫描 316 5.4.9 Web留言板中的局部范围扫描 318第6章 表连接的最优化方案 336 6.1 JOIN和LOOP QUERY的比较 339 6.1.1 全部范围扫描方式下的比较 341 6.1.2 局部范围扫描方式下的比较 349 6.2 连接条件状态对表连接的影响 351 6.2.1 连接条件正常 353 6.2.2 连接条件一边异常 358 6.2.3 连接条件两边异常 361 6.3 各种表连接方式的特征及活用方案 365 6.3.1 嵌套循环连接 366 6.3.1.1 嵌套循环连接的基本概念 367 6.3.1.2 嵌套循环连接顺序的决定 370 6.3.2 排序合并连接 379 6.3.3 嵌套循环连接和排序合并连接的比较 383 6.3.4 哈希连接(Hash Join) 387 6.3.4.1 IN-MEMORY哈希连接 392 6.3.4.2 延迟哈希连接 395 6.3.5 半连接(Semi Join) 398 6.3.5.1 半连接的概念和特征 399 6.3.5.2 半连接的执行计划 401 6.3.6 星型(Star)连接 417 6.3.7 星变形(Star Transformation)连接 425 6.3.8 位图连接索引 436

章节摘录

插图:所谓的表和索引分离型的存储结构其实就是堆表,即用来存储数据的表和为了快速查找特定数据而使用的索引完全作为不同的对象来存储。事实上,在以前的关系型数据库中,大部分的键(Key)和数据都有着非常密切的关系。当我们从存储的数据中查找某个特定范围中的数据时必须要依赖于键,否则无法正常查找所需要的数据。因此,键必然会对数据的存储产生一定的影响。在以前的数据库中查找数据时,只需要查找到键就一定能够在相应的位置查到与其对应的数据,因此从某个角度来看,查找键就是查找数据。也正因为如此,一度的经验是把键存储在数据的旁边。其实即使我们把数据和键分别存储在不同的位置,也同样能够通过查找键来定位到数据所在的位置,所以完全没有必要把键和数据存储在一起。从代价的角度来分析,由于需要执行两次查找,即键的查找和数据的查找,所以与以前的方法相比必然会存在额外的代价。使用键和数据分离的方法在存储数据时不会受到索引的任何影响,从这一角度来看,又在很大程度上减少了代价的支出。如果使用这种方法来存储数据,则意味着数据与存储方式之间将不再有任何的关联,而数据完全可以被无条件地存储。这就好像往抽屉里放东西一样,如果并不需要我们去追究将要放入的物品是什么,而只需要将其挨着放入就可以了的话,应该再没有比这更为简单的方法了。


编辑推荐

《海量数据库解决方案》:涵盖数据库专家最新核心技术的RDBMS经典书籍包含了将代码缩减为原来的1/10而速度提高至原来10倍的先进方法。揭开了关系数据库的真面目。展示了截至现在未能被灵活使用的新技术。10亿韩元 40万册销售神话韩国数据库泰斗李华植先生力作风靡日韩盖国强 郑保卫博士 译  ITPUB数据库版主张乐奕 崔华 审校  《海量数据库解决方案》是一本全面反映过去10年迅速发展的商用DBMS最新数据库应用技术、强化数据库技术灵活运用原理及系统化具体应用准则的高水平的经典书籍。《海量数据库解决方案》曾在韩国和日本同时出版发行。在日本最权威的数据库专业出版社(株)——翔泳社出版局出版发行《海量数据库解决方案》的同时,也将韩国先进的数据库技术传播到了日本。此次在发行中文版的同时,也希望《海量数据库解决方案》中所涵盖的技术能够对中国的广大读者有所帮助。《海量数据库解决方案》中所涉及的普遍性原理适合于任何DBMS,只要对语法稍加调整便可在所有DBMS中得到有效使用。为了便于读者对关系数据库的概念、优化器的灵活运用原理、适用于多样化实际业务中的明确应用准则有一个充分的理解,在《海量数据库解决方案》中通过举例对这些内容进行了详细说明。 

图书封面

图书标签Tags

广告

下载页面


海量数据库解决方案 PDF格式下载



海量数据库解决方案


想理解数据库执行原理,这个是不错的选择,特别是是留言板分页的例子,对EIS开发者来说,很值得借鉴。


一个多月的时间,终于快把整本书看完了,一个字,难!对于对刚学数据库的同学来讲,内容应该还是有难度的;原理性的东西比较多,但里面的例子比喻形象易懂,还是比较容易理解;如果认认真真地看完整本书,相信大部分的同学在数据库开发与设计方面,应该会更上一层楼,水平会得到很大的提高;好书就是这样,受益非浅!


内容非常专业,关系数据库大数据处理的必备书籍,很透彻


个人觉得,应用系统方面还可以理解,数据库方面不够专业。


针对数据库的优化!有点小失望!不过还好!


以前在公司就借着看过一部分, 借着看感觉还是不太爽, 忍不住自己买一本算了。

书中很多观点都影响了我,比如序言中的关于“数据库内功不会过时”的论调,让我觉得自己非要抛弃开发,当个DBA不可。

怪不得那个时候阿里巴巴的经理问我为什么不愿意去他那当开发,而是要做DBA,原来是被作者的观点影响了。


很经典的数据库书籍。貌似有II 但好像没有卖的。是不是没有翻译啊。


振聋发聩之作,很震撼。建议从事跟数据库有关的工作者都读一下


对大型软件的数据库设计很有帮助。


值得看看,补充数据库基本知识


本书非常实用,对于在海量数据存储的确是一个必不可少的参考书籍


海量数据处理技术


很不错的书,通过现实生活中原型举例,阐述了RDBMS的运行工作原理,是一本不错的好书,
值得推荐,非常适合于有非常经验的人。从书中字里行间可以体会到几位作者的辛苦付出,给大家分享如此宝贵的经验,是自身提升的首选作品!


具体问题具体分析,列出各种不同应用环境的SQL运行性能描述,较详细。


很有深度,对深入了解oracle工作原理很有帮助。


oracle优化方面的好书


早就听说李华植大名,这次翻阅本书收益太深。从理论到实践、案例合成一气,太经典、太大气、又细致入微,功力非常深厚。


准备看,应该能够帮助优化系统


作者是韩国人,翻译后引入中国的时间晚了些。


翻译的不错,内容一般般,随便看看~~
号称韩国销量牛逼的书


书读的比较少,好像还是第一次接触韩国人的书


优化的经典书


技术书籍很少有折扣,这次趁打折多买几本,慢慢看


给老公买的,他说这是本很专业的书,对工作非常有帮助。当当的价格也很合理,发货速度快。


索引着一块写的很好


看的不多,基本上是关于索引的比较多,感觉还是慢不错的


书还没看,是关于oracle的。应该还不错。可能不太适合初学者。


听说这本书是因为书的翻译者,也因为他们而买了这本书,内容非常不错,需要耐心一点点品读


朋友介绍说这本书不错,还没有看了。


这本书还是不错的,值得推荐


这本书讲得非常深,有些还看不懂,但是受益匪浅


内容比较深奥,不适合我这种菜鸟,还要补习很多课。ps:行文啰嗦了点,其他还好。


内容比较深,深入学习有帮助


现在工作正好用到这方面的内容,


感觉不错,有提高


写的很好,很经典


朋友推荐的, 内容不错, 物有所值


看了前两章,感觉挺好的,文字比较多,但是读起来很慢,但是受益匪浅


虽然简单,但是很实用,有很强的实践意义


值得学习,开拓视野。


正在看 很好的书 很全 讲的也很细


好,质优价廉


还行吧。刚买来看看


书才拿到手,老大推荐的。看看还不错讲的挺好,值得好好的学习。


看了这后,受益良多。


大概翻了一下,感觉还可以。


够深入,受益匪浅!


挺实用的,现在还没看完


还不错,书质量不错,要多看几篇才行


----------


书的内容写的很透彻很详细,对数据库的内部查询原理,各种优化方式做了详细的分析,讲的很明了很清楚,对海量数据库数据处理,SQL优化很有帮助;适合有一定数据库基础知识的人阅读;


是一本不错的数据库优化书


很好的一本书,讲解很详细。尤其是对数据执行机制的原理很细致。


买回来很长时间都没认真看,最近几天才拿出来。里面的内容还是很实用的,尤其对像我这类能用数据库进行软件开发,但又不太懂其内在机理的程序员。推荐一下!


这本书适合有一定基础的人看,书中使用了大量的现实比喻,让读者更好的理解抽象的东西,但是实际例子与操作细节很少,整本书都是文字,看起来比较枯燥。


纸张一般,内容还是挺实用的,偏重索引,是基于oracle讲解的


书的质量还成,按照技术人员所提要求购买,应该是工作必备书


内容偏重讲索引,结合案例讲易懂,物有所值


写得不错,特别是里面的索引讲得好,强烈建议看下,省得面试时答不出来,呵呵


帮朋友买的,他说还不错,内容很详细


这本书太讲得太深了,很难理解,不过确实是精品之作,需要有丰富知识才能体会深层意思!


书写的比较宽泛,不是很具体。


这本书对我很有使用价值,很好。


还可以吧,有些说的还是比较详细的


一直找这方面的书书籍,送货很及时


内容比较精细,希望在工作中能够引用


书还是不错适合有基础的学习


书是好书,中文版看的太费劲儿,翻译不够精炼。
但还是要谢谢,翻译和校对人员。


当文学作品翻看了,毕竟不是做方面工作的,但可以看出有作者自己的东西在里面


写的不错,很基础,也很实用


内容很虚。看看就好。


一拿到书,感觉书是旧的,纸张不行,内容少了


作为充电只用,昨天下的单,今天就到货了,很快,书内容的话暂时还未阅读


帮老公买的,没看到内容如何


哎,内容太深奥,时间不充裕,平时也用不到,也不晓得实用性如何,一直放着,可惜了。但看里面的内容还是有吸引力的,只是算法太多了。


还没仔细看 不过序写的还行


感觉不值那么多钱


很好的书,纸张有点糙。


书已收到,看了一部分,觉得写的还不错,就是书用的纸张有点次。。
总体讲还是推荐大家阅读的


还不错,需要用心的看


还行吧,哈哈。还没看,不过觉得还不错


还行,对海量数据处理有一定帮助


还没认真阅读,不过,单从目录上可以看出,是针对一个个技术细节的具体描述.章目不多,但很详尽.
纸质似乎不是很好.


原作的水平乃是高屋建瓴,可惜翻译欠火候,长句子太多,阅读起来很不流畅,建议继续优化。


挺好的一本书,讲述比较详细


对oracle了解不深的不建议看,内容广有深度!


翻译的不怎么样,加上内容也不是很容易理解,看起来就云里雾里了,看了两章,非常累,就没看了。


还不错啦啦啦啦啦啦啦啦啦


一般,废话比较多


写在很细


事无巨细,写得过于啰嗦。


说什么海量数据库解决方案,根本就没有谈到或涉及到这块的内容,有点风马牛不相及,还那贵!希望国内那几位Oracle大侠不要伤了粉丝的心!


书刚拿到,翻了翻,一般。


一本忽悠人的书,不要买。完全不是所谓的海量级数据库解决方案。本质上就是借着专家的名头在忽悠一些专业名词和秀一下作者多么牛逼,没有一个所谓的完整的解决方案,这里扯一点那里讲一点,让读者跟着满天飞,转到头晕。目的就是让读者冤枉买单,让卖家黑心赚钱!


因为是翻译作品,读的过程中,还是有点不太适应,觉得文字叙述稍显罗嗦,但是可以肯定的是,这是一本很有价值的书,通过这本书,我还是学到了很多新的知识,或者说,很多知识在这本书里我才接触到。我觉得,这是一本更适合开发人员看的书,对怎么构造数据表,创建合适的索引,以及怎么写出高效的SQL都有很大的帮助。


理论太多,太罗嗦,实践说明和例子比较少


N个月以前,就从eygle的博客上看到有这么一本书。因为是韩国的,印象特别深。记忆中,韩国网游业发达,数据规模很大,因此在数据库技术方面领先于中国……想起来了,eygle的那篇文章似乎叫“他山之石可以攻玉”?书出来后,我也是先从eygle的博客上看到了封面,好家伙,这阵容也忒豪华了!原作者不知道,可能因为语言问题,两地的技术从来没有过任何的交流。但中国人里,盖国强、张乐奕、崔华,搞数据库的,上itpub的,没有不知道这些人的,算是数据库领域最拔尖的了吧。这些人成名已久,早脱离挣钱或出名的层次,肯定是感兴趣或认可内容,才会投入那么大的精力鼓捣这本书。翻译本来不是个容易的事,还是思密达,难度可想而知。有他们的推崇,心里基本有底。书刚到一天,速读了1/3多(我的习惯,先快速看一遍,然后再仔细看一遍,有的书不好,就没有后面那一遍了)。给我的印象是,这本书的作者对数据库的掌握的确比较透彻,学者味很浓,对大型数据库设计、架构和性能优化的思路和方法,从“为什么要那样做”的角度进行了细致的原理分析,并且善用生活中的例子作类比,这对于理解一些比较抽象的概念,非常有帮助。国内技术书多以工程师模式来写作,常能见到植根于技术文档的文字,说理方面要薄弱一些。另外一个印象就是,这本书较为底层,不是那种只关注应用末梢的书,所以即使不是马上用到,用来修炼内功也是个不错的选择。不管是初学者,...还是资深的数据库及开发人员,都可以以此作为个人知识库的良性补充,因为国内这样的书真没有。当然,也有美中不足的地方,就是感觉还有很多话题同样想了解。这可能是因为讲得太透彻,没法覆盖更广泛的话题,当然也许是藏在了我还没有看到的地方…… 阅读更多 ›


很好的一本书,描述大数据量数据库的解决方案。


很好的一本书,通俗易懂,把数据库的性能知识讲得非常透彻,非常适合关注性能及海量数据的行业朋友阅读。


相关图书