数据库索引设计与优化

相关资料

[

,

  这本写作于2005年的著作,是少数能够穿越十年仍然历久弥新的经典著作之一。译者曹怡倩和赵建伟是支付宝的资深数据库专家,也是童家旺的得意门生,他们的经验和理解为本书增色良多。我在学习过程中也曾经从本书的英文版中获益……
  ——盖国强(oracle ace总监,云和恩墨创始人)
  在工程领域,很多数据库工程师们都积累了对于索引设计与优化的经验,可惜很少有书籍系统地介绍这部分内容,这导致网上存在很多错误的观念。可喜的是本书详细介绍了一种简单、高效的数据库索引设计方法,可让读者对数据库的索引设计快速进阶。
  ——姜承尧(网易杭州研究院数据库技术组负责人)
  书中使用了oracle、db2和sql server 这三种数据库的大量案例,介绍了它们的异同与各自的特性,绝大部分内容也同样适合于mysql和postgresql数据库产品。个人认为本书可奉为宝典,是值得dba们人人收藏的一本书,也适合作为云计算平台研发自动化sql审核与索引创建组件研发工程师的工具书。
  ——金官丁
  本书原著是数据库领域的重要理论大作,几年前童家旺先生就推荐过此书,在《高性能mysql》一书中也推荐过它,据说他还要求每位徒弟都熟读此书,可见其重要性。
  ——叶金荣
  记得第一次接触到这本书英文版是在2011年的时候,从这本书中所学到的知识对我之后的工作带来了极大的帮助,使我在应用系统的索引设计及sql调优上节省了大量的精力且取得了不错的效果。之所以能有如此成效,完全得益于tapio lahdenm?ki和michael leach两位作者的贡献,是他们将宝贵的经验与智慧与广大读者分享。
  ——现阿里蚂蚁dba团队资深专家 知含
  这本书不仅讲述了如何建立三星索引的方法论,更重要的是给出了基于硬件和软件环境下索引设计的量化评估的方法和实践,掌握了这些方法后,你将能够提前量化业务sql上线运行情况,并指导后期的容量评估。这本书并没有限定具体的商业或者开源的关系型数据库产品,而是讲述通用的理论和方法。
  ——现阿里蚂蚁dba团队资深专家 赵建伟
  本书的目标读者是那些希望理解sql性能相关内容,并希望了解如何有效设计表和索引的人。通过本书,拥有多年关系型系统经验的读者能够更好地判断新硬件的引入所可能带来的变化。
  ——本书英文版读者

,

  本书提供了一种简单高效的设计索引和表的方法。作者通过大量的举例及案例研究描述了oracle、db2和sql server优化器是如何决定以何种方式访问数据库的,同时还阐述了快速估算所选择的访问路径的cpu及响应时间的方法。这使得对比不同设计方案的优劣成为了可能,且能帮助你在众多方案中选出最合适的那一个。
  ——本书英文版读者
  尽管所有的书中都写了如何正确编写查询、如何组织表,以及应当按照什么规则来决定将哪些列添加至索引上。但我们最需要的是一本能够突破常规的书,真正开始思考为何现今仍有这么多人还会遇到如此多的问题。《数据库索引设计与优化》做到了!
  ——本书英文版读者

,

 

]

本书特色

[

本书提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算sql运行的cpu时间及执行时间,帮助读者从原理上理解sql、表及索引结构、访问方式等对关系型数据库造成的影响,并能够运用量化的方法进行判断和优化,指导关系型数据库的索引设计。

]

内容简介

[

中国数据库界几大势力云集于这本旷世奇作,没读过咋好意思和dba同行打招呼
  蚂蚁(原支付宝)数据库团队资深专家携成长回忆与技术历程倾情献上*优质翻译
  本书旨在——通过设计适用于现代硬件的索引,来提升关系型数据库的性能
  软硬件发展让数据库性能被忽视,但数据处理量增长更快,全新索引优化设计才能根治随机读速缓慢

 

]

作者简介

[

Tapio Lahdenmaki,数据库性能顾问,教授通用索引设计课程。他在IBM公司工作了三十多年,是公司全球课程中有关DB2 (for z/OS)性能相关课程的主要作者。Michael Leach,关系型数据库顾问,已从IBM公司退休,他拥有二十年的应用系统及数据库课程的教授经验。两位作者的文章均被翻译成了多国语言广为传播。他们有关索引设计的方法被成功应用于许多核心系统。

]

目录

第1章 概述关于sql性能的另一本书不合适的索引误区和误解误区1:索引层级不要超过5层误区2:单表的索引数不要超过6个误区3:不应该索引不稳定的列示例磁盘驱动器使用率系统化的索引设计 第2章 表和索引结构介绍索引页和表页索引行索引结构表行缓冲池和磁盘i/o从dbms缓冲池进行的读取从磁盘驱动器进行的随机i/o从磁盘服务器缓存进行的读取从磁盘驱动器进行的顺序读取辅助式随机读辅助式顺序读同步i/o和异步i/o硬件特性dbms特性页表聚簇索引行表行索引组织表页邻接b树索引的替代品聚簇的许多含义 第3章 sql处理过程简介谓词评注优化器及访问路径索引片及匹配列索引过滤及过滤列访问路径术语监控优化器帮助优化器(统计信息)帮助优化器(fetch调用的次数)何时确定访问路径过滤因子组合谓词的过滤因子过滤因子对索引设计的影响物化结果集游标回顾方式1:一次fetch调用物化一条记录方式2:提前物化数据库设计人员必须牢记练习 第4章 为selete语句创建理想的索引简介磁盘及cpu时间的基础假设不合适的索引三星索引–查询语句的理想索引星级是如何给定的范围谓词和三星索引为查询语句设计*佳索引的算法候选a候选b现今排序速度很快–为什么我们还需要候选b需要为所有查询语句都设计理想索引吗完全多余的索引近乎多余的索引可能多余的索引新增一个索引的代价响应时间磁盘负载磁盘空间一些建议练习 第5章 前瞻性的索引设计发现不合适的索引基本问题法(bq)注意快速上限估算法(qube)服务时间排队时间基本概念:访问计算访问次数fetch处理主要访问路径的qube示例使用满足需求的成本*低的索引还是所能达到的*优索引:示例1该事务的基本问题对该事务上限的快速估算使用满足需求的成本*低的索引还是所能达到的*优索引该事务的*佳索引半宽索引(*大化索引过滤)宽索引(只需访问索引)使用满足需求的成本*低的索引还是所能达到的*优索引:示例2范围事务的bq及qube该事务的*佳索引半宽索引(*大化索引过滤)宽索引(只需访问索引)何时使用qube 第6章 影响索引设计过程的因素i/o时间估算的验证多个窄索引片简单就是美(和安全)困难谓词like谓词or操作符和布尔谓词in谓词过滤因子隐患过滤因子隐患的例子*佳索引半宽索引(*大化索引过滤)宽索引(只需访问索引)总结练习 第7章 被动式索引设计简介explain描述了所选择的访问路径全表扫描或全索引扫描对结果集排序成本估算数据库管理系统特定的explain选项及限制监视揭示现实性能监视器的演进lrt级别的异常监视程序粒度的均值是不够的异常报告举例:每个尖刺一行问题制造者和受害者有优化空间的问题制造者和无优化空间的问题制造者有优化空间的问题制造者调优的潜在空间无优化空间的问题制造者受害者查找慢的sql调用调用级别的异常监视oracle举例sql server举例结论数据库管理系统特定的监视问题尖刺报告练习 第8章 为表连接设计索引简介两个简单的表连接例8.1:cust表作为外层表例8.2:invoice表作为外层表表访问顺序对索引设计的影响案例研究现有索引理想索引理想索引,每事务物化一屏结果集理想索引,每事务物化一屏结果集且遇到ff缺陷基本连接的问题(bjq)结论:嵌套循环连接预测表的访问顺序合并扫描连接和哈希连接合并扫描连接例8.3:合并扫描连接哈希连接程序c:由优化器选择ms/hj(在现有索引条件下)理想索引嵌套循环连接vs. ms/hj及理想索引嵌套循环连接vs. ms/hj嵌套循环连接vs.理想索引连接两张以上的表为什么连接的性能表现较差模糊的索引设计优化器可能选择错误的表访问路径乐观的表设计为子查询设计索引为union语句设计索引对于表设计的思考冗余数据无意识的表设计练习 第9章 星型连接介绍维度表的索引设计表访问顺序的影响事实表的索引汇总表 第10章 多索引访问简介索引与与查询表一同使用索引与多索引访问和事实数据表用位图索引进行多索引访问索引或索引连接练习 第11章 索引和索引重组b树索引的物理结构dbms如何查找索引行插入一行时会发生什么叶子页的分裂严重吗什么时候应该对索引进行重组插入模式索引列的稳定性长索引行举例:对顺序敏感的批处理任务表乱序(存在聚簇索引)表乱序(没有以cno开头的聚簇索引)存储在叶子页中的表行sql serveroracle索引重组的代价分裂的监控总结 第12章 数据库管理系统相关的索引限制简介索引列的数量索引列的总长度变长列单表索引数量上限索引大小上限索引锁定索引行压缩数据库管理系统索引创建举例 第13章 数据库索引选项简介索引行压缩索引键以外的其他索引列唯一约束从不同的方向扫描数据库索引索引键截断基于函数的索引索引跳跃式扫描块索引数据分区的二级索引练习 第14章 优化器不是完美的简介优化器并不总能看见*佳方案匹配及过滤问题非bt谓词无法避免的排序不必要的表访问优化器的成本估算可能错得离谱使用绑定变量的范围谓词偏斜分布相关列部分索引键的警示故事成本估算公式估算i/o时间估算cpu时间协助优化器处理估算相关的问题优化器的问题是否会影响索引设计练习 第15章 其他评估事项qube公式背后的假设条件内存中的非叶子索引页例子磁盘服务器读缓存的影响缓冲子池长记录慢速顺序读实际的响应时间可能比qube评估值短得多叶子页和表页缓存在缓冲池中识别低成本的随机访问辅助式随机读取辅助式顺序读评估cpu时间(cqube)单次顺序访问的cpu时间单次随机访问的cpu时间单次fetch调用的cpu时间每排序一行的平均cpu时间cpu评估举例宽索引还是理想索引嵌套循环(及反范式化)还是ms/hj合并扫描与哈希连接的比较跳跃式顺序扫描cpu时间仍然不可忽视 第16章 组织索引设计过程简介计算机辅助式索引设计设计出色索引的9个步骤 参考文献术语表索引

封面

数据库索引设计与优化

书名:数据库索引设计与优化

作者:拉赫登迈奇

页数:296

定价:¥79.0

出版社:电子工业出版社

出版日期:2015-06-01

ISBN:9787121260544

PDF电子书大小:57MB 高清扫描完整版

百度云下载:http://www.chendianrong.com/pdf

发表评论

邮箱地址不会被公开。 必填项已用*标注