登入帳戶  | 訂單查詢  | 購物車/收銀台( 0 ) | 在線留言板  | 付款方式  | 運費計算  | 聯絡我們  | 幫助中心 |  加入書簽
會員登入 新用戶登記
HOME新書上架暢銷書架好書推介特價區會員書架精選月讀2023年度TOP分類瀏覽雜誌 臺灣用戶
品種:超過100萬種各類書籍/音像和精品,正品正價,放心網購,悭钱省心 服務:香港台灣澳門海外 送貨:速遞郵局服務站

新書上架簡體書 繁體書
暢銷書架簡體書 繁體書
好書推介簡體書 繁體書

三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書
12月出版:大陸書 台灣書
11月出版:大陸書 台灣書
十月出版:大陸書 台灣書
九月出版:大陸書 台灣書
八月出版:大陸書 台灣書
七月出版:大陸書 台灣書
六月出版:大陸書 台灣書
五月出版:大陸書 台灣書
四月出版:大陸書 台灣書
三月出版:大陸書 台灣書
二月出版:大陸書 台灣書
一月出版:大陸書 台灣書

『簡體書』数据库查询优化器的艺术:原理解析与SQL性能优化(MySQL全球开发团队资深专家撰写)

書城自編碼: 2190644
分類:簡體書→大陸圖書→計算機/網絡數據庫
作者: 李海翔
國際書號(ISBN): 9787111447467
出版社: 机械工业出版社
出版日期: 2013-12-31
版次: 1

書度/開本: 16开

售價:HK$ 235.9

我要買

 

** 我創建的書架 **
未登入.


新書推薦:
数字经济:“数字中国”顶层规划与实践路径
《 数字经济:“数字中国”顶层规划与实践路径 》

售價:HK$ 82.8
算者生存:商业分析的方法与实践
《 算者生存:商业分析的方法与实践 》

售價:HK$ 95.8
共享现实:是什么让我们成为人类
《 共享现实:是什么让我们成为人类 》

售價:HK$ 153.6
女佣异闻:乙一出道25周年纪念短篇集
《 女佣异闻:乙一出道25周年纪念短篇集 》

售價:HK$ 59.9
生活观察图鉴 中国常见鸟类观察图鉴
《 生活观察图鉴 中国常见鸟类观察图鉴 》

售價:HK$ 179.8
父亲身份:探寻血缘之谜
《 父亲身份:探寻血缘之谜 》

售價:HK$ 105.6
悠游人间 赛博朋克少女插画绘制教程
《 悠游人间 赛博朋克少女插画绘制教程 》

售價:HK$ 119.8
“李晓鹏说中华史”系列(全二册)
《 “李晓鹏说中华史”系列(全二册) 》

售價:HK$ 175.2

 

建議一齊購買:

+

HK$ 179.4
《 HotSpot实战 》
+

HK$ 101.4
《 Effective MySQL之深入解析复制技术 》
+

HK$ 257.4
《 深入浅出MySQL:数据库开发、优化与管理维护(第2版) 》
+

HK$ 153.4
《 Linux Shell脚本攻略(第2版) 》
編輯推薦:
Oracle公司MySQL全球开发团队资深专家撰写,拥有10余年数据库查询优化器和内核研究经验,数据库领域泰斗王珊教授亲自作序推荐
PostgreSQL中国社区和中国用户会发起人,以及来自Oracle、新浪、网易、华为等企业的数位资深数据库专家联袂推荐
从原理角度深度解读和展示数据库查询优化器的技术细节和全貌;从源码实现角度全方位深入分析MySQL和PostGreSQL两大主流开源数据库查询优化器的实现原理;从工程实践的角度对比了两大数据库的查询优化器的功能异同和实现异同
內容簡介:
本书是数据库查询优化领域的里程碑之作,由Oracle公司MySQL全球开发团队、资深专家撰写,作者有10余年数据库内核和查询优化器研究经验。数据库领域泰斗王珊教授亲自作序推荐,PostgreSQL中国社区和中国用户会发起人以及来自Oracle、新浪、网易、华为等企业的数位资深数据库专家联袂推荐。从原理角度深度解读和展示数据库查询优化器的技术细节和全貌;从源码实现角度全方位深入分析MySQL和PostgreSQL两大主流开源数据库查询优化器的实现原理;从工程实践的角度对比了两大数据库的查询优化器的功能异同和实现异同。它是所有数据开发工程师、内核工程师、DBA以及其他数据库相关工作人员值得反复研读的一本书。
全书一共19章,分为四个部分:第一篇(第1~4章)对数据库查询优化技术的范围、逻辑查询优化、物理查询优化,以及查询优化器与其他模块的关系做了非常细致、深入的讲解;第二篇(第5~10章)首先从源码角度对PostgreSQL查询优化器的架构、层次、设计思想、相关数据结构和实现原理进行了深入、系统的分析,然后从功能角度对PostgreSQL的逻辑查询优化、物理查询优化、查询优化器的关键算法,以及PostgreSQL查询优化器与其他模块的关系做了深入的讲解;第三篇(第11~16章)首先从源码角度对MySQL查询优化器的架构、层次、设计思想、相关数据结构和实现原理进行了深入、系统的分析,然后从功能角度对MySQL的逻辑查询优化、物理查询优化、查询优化器的关键算法,以及MySQL查询优化器与其他模块的关系做了深入的讲解;第四篇(第17~19章)对PostgreSQL与MySQL的逻辑查询优化技术、物理查询优化技术、设计思想和编码规范等各方面进行了深度的比较。
關於作者:
李海翔 网名“那海蓝蓝”,资深数据库专家,从事数据库研发、数据库测试与技术管理等工作10余年,对数据库的内核有深入的研究,长于PostgreSQL和MySQL等开源数据库的内核与架构。现任职于Oracle公司MySQL全球开发团队,从事查询优化技术的研究和MySQL查询优化器的开发工作。曾参与了863、核高基、工信部、科技部、发改委、北京市科委等多个重大科技项目。2005年获得北京市科学技术进步奖一等奖,2006年获高级工程师(系统分析师)。业余时间喜欢分享个人心得于博客
目錄
目录
推荐序一
推荐序二
前 言
第一篇 查询优化技术
第1章 数据管理系统的查询优化 2
1.1 数据库调优 3
1.2 查询优化技术 5
1.2.1 查询重用 5
1.2.2 查询重写规则 6
1.2.3 查询算法优化 6
1.2.4 并行查询优化 8
1.2.5 分布式查询优化 9
1.2.6 其他优化 9
1.3 本章小结 9
第2章 逻辑查询优化 10
2.1 查询优化技术的理论基础 10
2.1.1 关系代数 11
2.1.2 关系代数等价变换规则对优化的指导意义 13
2.2 查询重写规则 17
2.2.1 子查询的优化 18
2.2.2 视图重写 28
2.2.3 等价谓词重写 29
2.2.4 条件化简 32
2.2.5 外连接消除 33
2.2.6 嵌套连接消除 37
2.2.7 连接消除 38
2.2.8 语义优化 40
2.2.9 针对非SPJ的优化 41
2.3 启发式规则在逻辑优化阶段的应用 42
2.4 本章小结 43
第3章 物理查询优化 44
3.1 查询代价估算 44
3.1.1 代价模型 44
3.1.2 选择率计算的常用方法 45
3.2 单表扫描算法 45
3.2.1 常用的单表扫描算法 45
3.2.2 单表扫描代价计算 47
3.3 索引 47
3.3.1 如何利用索引 47
3.3.2 索引列的位置对使用索引的影响 50
3.3.3 联合索引对索引使用的影响 56
3.3.4 多个索引对索引使用的影响 57
3.4 两表连接算法 59
3.4.1 基本的两表连接算法 59
3.4.2 进一步认识两表连接算法 61
3.4.3 连接操作代价计算 61
3.5 多表连接算法 62
3.5.1 多表连接顺序 62
3.5.2 常用的多表连接算法 63
3.5.3 多表连接算法的比较 68
3.6 本章小结 68
第4章 查询优化器与其他模块的关系 70
4.1 查询优化器整体介绍 70
4.2 查询优化器与其他模块的关系 73
4.3 本章小结 74
第二篇 PostgreSQL查询优化器原理解析
第5章 PostgreSQL查询优化器概述 76
5.1 PostgreSQL查询执行过程 76
5.2 PostgreSQL查询优化器的架构和设计思想 78
5.2.1 PostgreSQL查询优化器架构 79
5.2.2 PostgreSQL查询优化器的层次 81
5.2.3 PostgreSQL查询优化器设计思想 81
5.3 主要概念 81
5.4 代码层次结构 85
5.5 本章小结 86
第6章 PostgreSQL查询优化器相关数据结构 88
6.1 主要数据结构 88
6.1.1 基本数据结构 88
6.1.2 查询树 91
6.1.3 各种对象的结构 95
6.1.4 连接操作相关的结构 99
6.1.5 查询执行计划相关的结构 104
6.2 各个结构之间的关系 108
6.3 各个阶段间和主要结构体间的关系 109
6.4 本章小结 110
第7章 PostgreSQL查询优化器实现原理解析 111
7.1 查询优化整体流程 111
7.2 查询优化器实现原理解析 115
7.2.1 planner——主入口函数 115
7.2.2 standard_planner——标准的查询优化器函数 116
7.2.3 subquery_planner——生成(子)查询执行计划函数 117
7.2.4 grouping_planner——生成查询执行计划并对非SPJ优化 139
7.2.5 build_minmax_path——聚集函数MINMAX的优化函数 141
7.2.6 query_planner——生成最优的查询路径函数 142
7.2.7 make_one_rel——构造多表连接路径并选出最优路径函数 148
7.2.8 make_rel_from_joinlist——生成多表连接路径函数 153
7.2.9 optimize_minmax_aggregates——聚集操作MINMAX优化函数 163
7.2.10 create_plan——创建查询执行计划函数 164
7.2.11 非SPJ处理——grouping_planner的各个子模块 166
7.2.12 其他重要的函数与操作 170
7.3 代价估算实现原理解析 174
7.3.1 查询代价估算 174
7.3.2 单表扫描方式的代价估算 174
7.3.3 两表连接的代价估算 178
7.3.4 其他代价估算函数 184
7.3.5 选择率的计算 185
7.4 从目录结构和文件功能角度看查询优化器 186
7.4.1 查询优化子模块与主要文件的关系 187
7.4.2 查询优化器代码结构 187
7.5 本章小结 190
第8章 从功能的角度看PostgreSQL查询优化 192
8.1 优化器之逻辑查询优化 192
8.1.1 视图重写 193
8.1.2 子查询优化 197
8.1.3 等价谓词重写 209
8.1.4 条件化简 209
8.1.5 外连接消除 210
8.1.6 嵌套连接消除 217
8.1.7 连接的消除 218
8.1.8 语义优化 221
8.1.9 选择操作下推 226
8.1.10 非SPJ优化 226
8.2 优化器之物理查询优化 229
8.2.1 PostgreSQL的物理优化主要完成的工作 229
8.2.2 启发式规则在物理查询优化阶段的使用 230
8.2.3 两表连接 230
8.2.4 代价估算 230
8.2.5 PostgreSQL的索引与查询优化 231
8.3 其他 237
8.3.1 grouping_planner函数主干再分析 238
8.3.2 用户指定的连接语义与PostgreSQL实现两表连接的函数及算法的关系 240
8.3.3 集合操作优化 242
8.4 本章小结 245
第9章 PostgreSQL查询优化的关键算法 246
9.1 动态规划算法 246
9.1.1 动态规划算法的处理流程 247
9.1.2 紧密树处理流程 248
9.2 遗传算法 248
9.2.1 PostgreSQL遗传算法的处理流程 248
9.2.2 主要的数据结构 250
9.2.3 主要的函数和变量 251
9.2.4 应用遗传算法实现表连接的语义 253
9.2.5 应用遗传算法计算适应度 254
9.2.6 进一步理解PostgreSQL的遗传算法 255
9.3 动态规划算法与遗传算法对比 256
9.4 本章小结 257
第10章  PostgreSQL查询优化器与其他部分的关系 259
10.1 查询优化器与语法分析器 259
10.2 查询优化器与执行器 260
10.3 查询优化器与缓冲区
管理模块 261
10.4 查询优化器与对象访问模块 262
10.5 查询优化器与统计模块 262
10.6 查询优化器与索引模块 263
10.7 本章小结 263
第三篇 MySQL查询优化器原理解析
第11章 MySQL查询优化器概述 266
11.1 MySQL查询执行过程 266
11.2 MySQL查询优化器的架构和设计思想 267
11.2.1 MySQL查询优化器架构 268
11.2.2 MySQL查询优化器的层次 269
11.2.3 MySQL查询优化器设计思想 269
11.3 主要概念 270
11.3.1 常量表 270
11.3.2 表数据的访问方式 270
11.4 代码层次结构 272
11.5 本章小结 274
第12章 MySQL查询优化器相关数据结构 275
12.1 主要的类和数据结构 275
12.1.1 查询树 275
12.1.2 基本对象 276
12.1.3 连接对象与执行计划 278
12.1.4 代价估算类 281
12.2 各个阶段主要结构体间的关系 282
12.3 本章小结 282
第13章 MySQL查询优化器的原理解析 283
13.1 查询优化器整体流程 283
13.2 优化器的代码详解 285
13.2.1 JOIN.prepare——优化前的准备工作 286
13.2.2 JOIN.optimize——优化器主入口方法 299
13.2.3 make_join_statistics——计算最优的查询优化执行计划 315
13.2.4 choose_table_order——求解多表连接最优连接路径 324
13.2.5 make_join_statistics函数的其他子函数 339
13.2.6 make_join_select——对条件求值、下推连接条件到表中 348
13.2.7 test_if_skip_sort_order——排序操作的优化 350
13.2.8 make_join_readinfo——为连接的每个表构造信息 351
13.2.9 JOIN.exec——执行查询执行计划的函数 353
13.3 代价估算 354
13.3.1 查询代价估算模型 354
13.3.2 查询代价估算过程 355
13.3.3 其他的代价估算 358
13.3.4 对存储引擎的调用接口 362
13.3.5 统计信息 364
13.4 本章小结 365
第14章 从功能的角度看MySQL查询优化 366
14.1 优化器之逻辑查询优化 366
14.1.1 视图重写 367
14.1.2 子查询优化 371
14.1.3 等价谓词重写 387
14.1.4 条件化简 388
14.1.5 外连接消除 389
14.1.6 嵌套连接消除 396
14.1.7 连接的消除 398
14.1.8 语义优化 400
14.1.9 非SPJ优化 406
14.2 优化器之物理查询优化 412
14.2.1 MySQL的物理优化主要完成的工作 412
14.2.2 启发式规则在物理查询优化阶段的使用 413
14.2.3 MySQL的索引与查询优化 413
14.2.4 用户指定的连接语义与MySQL实现两表连接的算法 417
14.3 本章小结 418
第15章 MySQL查询优化的关键算法 419
15.1 深入理解MySQL的多表连接算法 419
15.2 本章小结 424
第16章 MySQL查询优化器与其他部分的关系 425
16.1 查询优化器与语法分析器 425
16.2 查询优化器与执行器 426
16.3 查询优化器与缓冲区管理
模块 426
16.4 查询优化器与索引模块 426
16.5 本章小结 427
第四篇 PostgreSQL查询优化器 VS MySQL查询优化器
第17章 PostgreSQL和MySQL的逻辑查询优化技术 430
17.1 查询重写 430
17.1.1 子查询优化 430
17.1.2 视图重写 443
17.1.3 等价谓词重写 446
17.1.4 条件化简 447
17.1.5 外连接消除 448
17.1.6 嵌套连接消除 449
17.1.7 连接消除 451
17.1.8 语义优化 452
17.2 非SPJ的优化 452
17.3 本章小结 456
第18章 PostgreSQL和MySQL的物理查询优化技术 457
18.1 查询代价估算模型比较 457
18.2 单表扫描算法 458
18.3 索引 458
18.4 两表连接算法 466
18.5 多表连接算法 467
18.6 本章小结 467
第19章 PostgreSQL和MySQL的其他异同 468
19.1 启发式规则的使用比较 468
19.2 综合比较 469
19.2.1 基本概念的比较 469
19.2.2 数据结构的比较 469
19.2.3 设计思想的比较 469
19.2.4 编码规范的比较 470
19.3 本章小结 471
附录A 如何掌握数据库内核 472
附录B 如何阅读本书 496
附录C 如何阅读查询执行计划 498
附录D 如何跟踪查询执行计划 508
內容試閱
第一篇
查询优化技术
本篇介绍了数据库的查询优化技术,从数据库的理论出发界定查询优化技术的范围,讨论了包括逻辑查询优化、物理查询优化两个方面的查询优化技术。全篇立足于数据库的基本理论——关系代数,在第1章首先界定了本书讨论的查询优化的技术范围;在第2章运用关系代数理论和关系法则,对逻辑查询优化进行全面而深入的探讨,对各种逻辑查询优化技术进行全面介绍,指出关系代数对于查询优化技术的指导意义,通过示例巩固对查询优化技术的理解和认识;在第3章,通过对代价估算模型、索引和表扫描、表连接算法的介绍,对各种物理查询优化技术进行全面描绘,构造了清晰、完整的物理查询优化技术图谱;在第4章,对实现查询优化技术的数据库查询优化器的相关模块进行了介绍,意在使读者了解查询优化技术的相关上下文内容。
第1章
数据管理系统的查询优化
数据库管理系统(DataBase Management System,DBMS,简称数据库)是位于用户与操作系统之间的一层数据管理软件,主要功能包括:数据定义、数据操纵、数据库的运行管理、数据库的建立和维护等。
数据操纵是数据库管理系统中一种最基本的操作,这种操作包括查询、插入、删除和修改等,其中,查询操作称为查询处理。
查询的执行,就是查询处理的过程,即数据库按用户指定的SQL语句中的语义,执行语义所限定的操作。但SQL语句的执行效率对数据库的效率影响较大。为了提高查询语句的执行效率,对查询语句进行优化是必不可少的。
对查询语句进行优化的技术就是查询优化技术,运用查询技术实现数据操纵功能的过程是确定给定查询的高效执行计划的过程。所谓执行计划就是查询树,它由一系列内部的操作符组成,这些操作符按一定的运算关系构成查询的一个执行方案。查询优化的追求目标,就是在数据库查询优化引擎生成一个执行策略的过程中,尽量使查询的总开销(总开销通常包括IO、CPU、网络传输等)达到最小。
数据库查询优化技术主要包括查询重用技术、查询重写规则、查询算法优化技术、并行查询优化技术、分布式查询优化技术及其他方面(如框架结构)的优化技术,这6项技术构成了一个“广义的数据库查询优化”的概念。

 

 

書城介紹  | 合作申請 | 索要書目  | 新手入門 | 聯絡方式  | 幫助中心 | 找書說明  | 送貨方式 | 付款方式 香港用户  | 台灣用户 | 大陸用户 | 海外用户
megBook.com.hk
Copyright © 2013 - 2024 (香港)大書城有限公司  All Rights Reserved.