读书月福利
欢迎光临中图网 请 | 注册
> >>
数据库索引设计与优化

数据库索引设计与优化

出版社:电子工业出版社出版时间:2015-06-01
开本: 16开 页数: 296
中 图 价:¥43.5(5.5折) 定价  ¥79.0 登录后可看到会员价
暂时缺货 收藏
运费6元,满69元免运费
?快递不能达地区使用邮政小包,运费14元起
云南、广西、海南、新疆、青海、西藏六省,部分地区快递不可达
本类五星书更多>

数据库索引设计与优化 版权信息

数据库索引设计与优化 本书特色

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

数据库索引设计与优化 内容简介

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

数据库索引设计与优化 目录

第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 server
oracle
索引重组的代价
分裂的监控
总结


第12章 数据库管理系统相关的索引限制
简介
索引列的数量
索引列的总长度
变长列
单表索引数量上限
索引大小上限
索引锁定
索引行压缩
数据库管理系统索引创建举例


第13章 数据库索引选项
简介
索引行压缩
索引键以外的其他索引列
唯一约束
从不同的方向扫描数据库索引
索引键截断
基于函数的索引
索引跳跃式扫描
块索引
数据分区的二级索引
练习


第14章 优化器不是完美的
简介
优化器并不总能看见*佳方案
匹配及过滤问题
非bt谓词
无法避免的排序
不必要的表访问
优化器的成本估算可能错得离谱
使用绑定变量的范围谓词
偏斜分布
相关列
部分索引键的警示故事
成本估算公式
估算i/o时间
估算cpu时间
协助优化器处理估算相关的问题
优化器的问题是否会影响索引设计
练习


第15章 其他评估事项
qube公式背后的假设条件
内存中的非叶子索引页
例子
磁盘服务器读缓存的影响
缓冲子池
长记录
慢速顺序读
实际的响应时间可能比qube评估值短得多
叶子页和表页缓存在缓冲池中
识别低成本的随机访问
辅助式随机读取
辅助式顺序读
评估cpu时间(cqube)
单次顺序访问的cpu时间
单次随机访问的cpu时间
单次fetch调用的cpu时间
每排序一行的平均cpu时间
cpu评估举例
宽索引还是理想索引
嵌套循环(及反范式化)还是ms/hj
合并扫描与哈希连接的比较
跳跃式顺序扫描
cpu时间仍然不可忽视


第16章 组织索引设计过程
简介
计算机辅助式索引设计
设计出色索引的9个步骤


参考文献
术语表
索引

展开全部

数据库索引设计与优化 相关资料

  这本写作于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及响应时间的方法。这使得对比不同设计方案的优劣成为了可能,且能帮助你在众多方案中选出最合适的那一个。
  ——本书英文版读者
  尽管所有的书中都写了如何正确编写查询、如何组织表,以及应当按照什么规则来决定将哪些列添加至索引上。但我们最需要的是一本能够突破常规的书,真正开始思考为何现今仍有这么多人还会遇到如此多的问题。《数据库索引设计与优化》做到了!
  ——本书英文版读者

 

数据库索引设计与优化 作者简介

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

商品评论(0条)
暂无评论……
书友推荐
编辑推荐
返回顶部
中图网
在线客服