数据库索引设计与优化

数据库索引设计与优化
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] , [美] , ,
2015-06
版次: 1
ISBN: 9787121260544
定价: 79.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 320页
字数: 380千字
正文语种: 简体中文
原版书名: Relational Database Index Design and the Optimizers
262人买过
  •   《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算SQL运行的CPU时间及执行时间,帮助读者从原理上理解SQL、表及索引结构、访问方式等对关系型数据库造成的影响,并能够运用量化的方法进行判断和优化,指导关系型数据库的索引设计。
      《数据库索引设计与优化》适用于已经具备了SQL这一关系型语言相关知识,希望通过理解SQL性能相关的内容,或者希望通过了解如何有效地设计表和索引而从中获益的人员。另外,《数据库索引设计与优化》也同样适用于希望对新硬件的引入所可能带来的变化做出更好判断的资深人士。
      塔皮奥.拉赫登迈奇(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
    嵌套循环连接VS
    嵌套循环连接VS.理想索引
    连接两张以上的表
    为什么连接的性能表现较差
    模糊的索引设计
    优化器可能选择错误的表访问路径
    乐观的表设计
    为子查询设计索引
    为UNION 语句设计索引
    对于表设计的思考
    冗余数据
    无意识的表设计
    练习
    第9 章 星型连接
    介绍
    维度表的索引设计
    表访问顺序的影响
    事实表的索引
    汇总表
    第10 章 多索引访问
    简介
    索引与
    与查询表一同使用索引与
    多索引访问和事实数据表
    用位图索引进行多索引访问
    索引或
    索引连接
    练习
    第11 章 索引和索引重组 
    B 树索引的物理结构
    DBMS 如何查找索引行
    插入一行时会发生什么
    叶子页的分裂严重吗
    什么时候应该对索引进行重组
    插入模式
    索引列的稳定性
    长索引行
    举例:对顺序敏感的批处理任务
    表乱序(存在聚簇索引)
    表乱序(没有以CNO 开头的聚簇索引)
    存储在叶子页中的表行
    SQL Server
    Oracle
    索引重组的代价
    分裂的监控
    总结
    第12 章 数据库管理系统相关的索引限制
    简介
    索引列的数量
    索引列的总长度
    变长列
    单表索引数量上限
    索引大小上限
    索引锁定
    索引行压缩
    数据库管理系统索引创建举例
    第13 章 数据库索引选项 
    简介
    索引行压缩
    索引键以外的其他索引列
    唯一约束
    从不同的方向扫描数据库索引
    索引键截断
    基于函数的索引
    索引跳跃式扫描
    块索引
    数据分区的二级索引
    练习
    ……
    第14 章 优化器不是完美的
    第15 章 其他评估事项
    第16 章 组织索引设计过程
    参考文献
    术语表
    索引
  • 内容简介:
      《数据库索引设计与优化》提供了一种简单、高效、通用的关系型数据库索引设计方法。作者通过系统的讲解及大量的案例清晰地阐释了关系型数据库的访问路径选择原理,以及表和索引的扫描方式,详尽地讲解了如何快速地估算SQL运行的CPU时间及执行时间,帮助读者从原理上理解SQL、表及索引结构、访问方式等对关系型数据库造成的影响,并能够运用量化的方法进行判断和优化,指导关系型数据库的索引设计。
      《数据库索引设计与优化》适用于已经具备了SQL这一关系型语言相关知识,希望通过理解SQL性能相关的内容,或者希望通过了解如何有效地设计表和索引而从中获益的人员。另外,《数据库索引设计与优化》也同样适用于希望对新硬件的引入所可能带来的变化做出更好判断的资深人士。
  • 作者简介:
      塔皮奥.拉赫登迈奇(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
    嵌套循环连接VS
    嵌套循环连接VS.理想索引
    连接两张以上的表
    为什么连接的性能表现较差
    模糊的索引设计
    优化器可能选择错误的表访问路径
    乐观的表设计
    为子查询设计索引
    为UNION 语句设计索引
    对于表设计的思考
    冗余数据
    无意识的表设计
    练习
    第9 章 星型连接
    介绍
    维度表的索引设计
    表访问顺序的影响
    事实表的索引
    汇总表
    第10 章 多索引访问
    简介
    索引与
    与查询表一同使用索引与
    多索引访问和事实数据表
    用位图索引进行多索引访问
    索引或
    索引连接
    练习
    第11 章 索引和索引重组 
    B 树索引的物理结构
    DBMS 如何查找索引行
    插入一行时会发生什么
    叶子页的分裂严重吗
    什么时候应该对索引进行重组
    插入模式
    索引列的稳定性
    长索引行
    举例:对顺序敏感的批处理任务
    表乱序(存在聚簇索引)
    表乱序(没有以CNO 开头的聚簇索引)
    存储在叶子页中的表行
    SQL Server
    Oracle
    索引重组的代价
    分裂的监控
    总结
    第12 章 数据库管理系统相关的索引限制
    简介
    索引列的数量
    索引列的总长度
    变长列
    单表索引数量上限
    索引大小上限
    索引锁定
    索引行压缩
    数据库管理系统索引创建举例
    第13 章 数据库索引选项 
    简介
    索引行压缩
    索引键以外的其他索引列
    唯一约束
    从不同的方向扫描数据库索引
    索引键截断
    基于函数的索引
    索引跳跃式扫描
    块索引
    数据分区的二级索引
    练习
    ……
    第14 章 优化器不是完美的
    第15 章 其他评估事项
    第16 章 组织索引设计过程
    参考文献
    术语表
    索引
查看详情
其他版本 / 全部 (1)
12
相关图书 / 更多
数据库索引设计与优化
数据治理实践者手记
苏振中
数据库索引设计与优化
数据中台:让数据用起来 第2版 付登坡 等
付登坡 江敏 赵东辉 等
数据库索引设计与优化
数据对话:建立你的数据流利度
(瑞士)马丁·埃普勒 法比耶纳 宾兹利
数据库索引设计与优化
数据结构高分(2025版 天勤3版) 大中专公共计算机 率辉 新华正版
率辉
数据库索引设计与优化
数据资源管理 陈忆金 奉国和
陈忆金 奉国和
数据库索引设计与优化
数据工程之道:设计和构建健壮的数据系统 [美]乔·里斯 [美]马特·豪斯利
[美]乔·里斯(Joe Reis),[美]马特·豪斯利(Matt Housley)
数据库索引设计与优化
数据法学前沿
武长海
数据库索引设计与优化
数据结构与算法入门到提高(Python语言实现)
谭琨、韦韬 编著
数据库索引设计与优化
数据合规与网络安全风险防范
冯洋
数据库索引设计与优化
数据加密与PKI应用(微课版)
王秀英
数据库索引设计与优化
数据治理驱动的数字化转型 王建峰 辛华
王建峰 辛华
数据库索引设计与优化
数据资产保护的合规要点与实务
辛小天,周杨,史蕾