图书介绍

数据库索引设计与优化2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

数据库索引设计与优化
  • (美)拉赫登迈奇,(美)利奇著;曹怡倩,赵建伟译 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121260544
  • 出版时间:2015
  • 标注页数:296页
  • 文件大小:45MB
  • 文件页数:321页
  • 主题词:数据库系统-研究

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

数据库索引设计与优化PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 概述1

关于SQL性能的另一本书1

不合适的索引3

误区和误解4

误区1:索引层级不要超过5层5

误区2:单表的索引数不要超过6个6

误区3:不应该索引不稳定的列6

示例7

磁盘驱动器使用率7

系统化的索引设计8

第2章 表和索引结构10

介绍10

索引页和表页11

索引行11

索引结构12

表行12

缓冲池和磁盘I/O12

从DBMS缓冲池进行的读取13

从磁盘驱动器进行的随机I/O13

从磁盘服务器缓存进行的读取14

从磁盘驱动器进行的顺序读取15

辅助式随机读15

辅助式顺序读18

同步I/O和异步I/O18

硬件特性19

DBMS特性20

页20

表聚簇21

索引行21

表行22

索引组织表22

页邻接23

B树索引的替代品24

聚簇的许多含义25

第3章 SQL处理过程27

简介27

谓词27

评注28

优化器及访问路径28

索引片及匹配列29

索引过滤及过滤列29

访问路径术语31

监控优化器32

帮助优化器(统计信息)32

帮助优化器(FETCH调用的次数)32

何时确定访问路径33

过滤因子34

组合谓词的过滤因子35

过滤因子对索引设计的影响37

物化结果集39

游标回顾39

方式1:一次FETCH调用物化一条记录40

方式2:提前物化41

数据库设计人员必须牢记41

练习41

第4章 为SELETE语句创建理想的索引43

简介43

磁盘及CPU时间的基础假设44

不合适的索引44

三星索引——查询语句的理想索引45

星级是如何给定的46

范围谓词和三星索引48

为查询语句设计最佳索引的算法49

候选A50

候选B50

现今排序速度很快——为什么我们还需要候选B51

需要为所有查询语句都设计理想索引吗52

完全多余的索引52

近乎多余的索引53

可能多余的索引53

新增一个索引的代价54

响应时间54

磁盘负载55

磁盘空间56

一些建议57

练习58

第5章 前瞻性的索引设计59

发现不合适的索引59

基本问题法(BQ)59

注意60

快速上限估算法(QUBE)61

服务时间62

排队时间62

基本概念:访问63

计算访问次数65

FETCH处理66

主要访问路径的QUBE示例67

使用满足需求的成本最低的索引还是所能达到的最优索引:示例172

该事务的基本问题73

对该事务上限的快速估算73

使用满足需求的成本最低的索引还是所能达到的最优索引74

该事务的最佳索引75

半宽索引(最大化索引过滤)75

宽索引(只需访问索引)76

使用满足需求的成本最低的索引还是所能达到的最优索引:示例277

范围事务的BQ及QUBE78

该事务的最佳索引79

半宽索引(最大化索引过滤)80

宽索引(只需访问索引)81

何时使用QUBE82

第6章 影响索引设计过程的因素83

I/O时间估算的验证83

多个窄索引片84

简单就是美(和安全)86

困难谓词87

LIKE谓词87

OR操作符和布尔谓词88

IN谓词89

过滤因子隐患90

过滤因子隐患的例子92

最佳索引95

半宽索引(最大化索引过滤)96

宽索引(只需访问索引)97

总结97

练习99

第7章 被动式索引设计100

简介100

EXPLAIN描述了所选择的访问路径101

全表扫描或全索引扫描101

对结果集排序101

成本估算102

数据库管理系统特定的EXPLAIN选项及限制102

监视揭示现实103

性能监视器的演进104

LRT级别的异常监视106

程序粒度的均值是不够的106

异常报告举例:每个尖刺一行106

问题制造者和受害者108

有优化空间的问题制造者和无优化空间的问题制造者108

有优化空间的问题制造者109

调优的潜在空间111

无优化空间的问题制造者114

受害者115

查找慢的SQL调用117

调用级别的异常监视118

Oracle举例121

SQL Server举例123

结论125

数据库管理系统特定的监视问题126

尖刺报告127

练习127

第8章 为表连接设计索引129

简介129

两个简单的表连接131

例8.1 :CUST表作为外层表131

例8.2 :INVOICE表作为外层表132

表访问顺序对索引设计的影响133

案例研究133

现有索引136

理想索引142

理想索引,每事务物化一屏结果集146

理想索引,每事务物化一屏结果集且遇到FF缺陷149

基本连接的问题(BJQ)151

结论:嵌套循环连接153

预测表的访问顺序153

合并扫描连接和哈希连接155

合并扫描连接155

例8.3 :合并扫描连接155

哈希连接157

程序C:由优化器选择MS/HJ(在现有索引条件下)158

理想索引159

嵌套循环连接VS.MS/HJ及理想索引161

嵌套循环连接VS.MS/HJ161

嵌套循环连接VS.理想索引162

连接两张以上的表163

为什么连接的性能表现较差166

模糊的索引设计166

优化器可能选择错误的表访问路径166

乐观的表设计166

为子查询设计索引167

为UNION语句设计索引167

对于表设计的思考167

冗余数据167

无意识的表设计171

练习173

第9章 星型连接175

介绍175

维度表的索引设计177

表访问顺序的影响178

事实表的索引179

汇总表182

第10章 多索引访问184

简介184

索引与184

与查询表一同使用索引与186

多索引访问和事实数据表187

用位图索引进行多索引访问187

索引或188

索引连接189

练习190

第11章 索引和索引重组191

B树索引的物理结构191

DBMS如何查找索引行192

插入一行时会发生什么193

叶子页的分裂严重吗194

什么时候应该对索引进行重组196

插入模式196

索引列的稳定性205

长索引行207

举例:对顺序敏感的批处理任务208

表乱序(存在聚簇索引)211

表乱序(没有以CNO开头的聚簇索引)212

存储在叶子页中的表行212

SQL Server212

Oracle213

索引重组的代价214

分裂的监控215

总结216

第12章 数据库管理系统相关的索引限制219

简介219

索引列的数量219

索引列的总长度220

变长列220

单表索引数量上限220

索引大小上限220

索引锁定221

索引行压缩221

数据库管理系统索引创建举例222

第13章 数据库索引选项224

简介224

索引行压缩224

索引键以外的其他索引列225

唯一约束227

从不同的方向扫描数据库索引227

索引键截断228

基于函数的索引228

索引跳跃式扫描229

块索引230

数据分区的二级索引230

练习231

第14章 优化器不是完美的232

简介232

优化器并不总能看见最佳方案234

匹配及过滤问题234

非BT谓词234

无法避免的排序237

不必要的表访问238

优化器的成本估算可能错得离谱239

使用绑定变量的范围谓词239

偏斜分布241

相关列242

部分索引键的警示故事243

成本估算公式246

估算I/O时间247

估算CPU时间248

协助优化器处理估算相关的问题249

优化器的问题是否会影响索引设计252

练习253

第15章 其他评估事项254

QUBE公式背后的假设条件254

内存中的非叶子索引页255

例子255

磁盘服务器读缓存的影响256

缓冲子池258

长记录259

慢速顺序读259

实际的响应时间可能比QUBE评估值短得多259

叶子页和表页缓存在缓冲池中260

识别低成本的随机访问262

辅助式随机读取262

辅助式顺序读265

评估CPU时间(CQUBE)265

单次顺序访问的CPU时间265

单次随机访问的CPU时间267

单次FETCH调用的CPU时间269

每排序一行的平均CPU时间270

CPU评估举例270

宽索引还是理想索引270

嵌套循环(及反范式化)还是MS/HJ271

合并扫描与哈希连接的比较274

跳跃式顺序扫描275

CPU时间仍然不可忽视276

第16章 组织索引设计过程277

简介277

计算机辅助式索引设计278

设计出色索引的9个步骤280

参考文献282

术语表283

索引291

热门推荐