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

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

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

『簡體書』数据库高效优化:架构 规范与SQL技巧

書城自編碼: 3525441
分類:簡體書→大陸圖書→計算機/網絡數據庫
作者: 马立和,高振娇,韩锋
國際書號(ISBN): 9787111658085
出版社: 机械工业出版社
出版日期: 2020-07-01

頁數/字數: /
書度/開本: 16开 釘裝: 平装

售價:HK$ 130.7

我要買

 

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


新書推薦:
寻秦迹:透过秦俑看秦朝
《 寻秦迹:透过秦俑看秦朝 》

售價:HK$ 127.4
秋原四部曲(全5册):地虎噬天王+清代旅蒙商述略+乱世靡音+茶馆之殇
《 秋原四部曲(全5册):地虎噬天王+清代旅蒙商述略+乱世靡音+茶馆之殇 》

售價:HK$ 298.0
西南联大通识课(全7册)
《 西南联大通识课(全7册) 》

售價:HK$ 479.1
汉字革命:中国语文现代性的起源(1916-1958)
《 汉字革命:中国语文现代性的起源(1916-1958) 》

售價:HK$ 81.4
压缩现代性下的韩国:转型中的家族政治经济学
《 压缩现代性下的韩国:转型中的家族政治经济学 》

售價:HK$ 68.4
失衡的利维坦:美国分裂的文化与政治根源
《 失衡的利维坦:美国分裂的文化与政治根源 》

售價:HK$ 69.6
法律的性质与渊源(汉译名著本21)
《 法律的性质与渊源(汉译名著本21) 》

售價:HK$ 57.8
在时间荒原上(米沃什自选集)
《 在时间荒原上(米沃什自选集) 》

售價:HK$ 92.0

 

編輯推薦:
(1)来自阿里、PingCAP、高校三个不同方向的三位作者强强联合,用时1年多,经过多次反复推敲修改,最终把20余年实战经验凝练再凝练后得到本书。
(2)本书内含100多个真实案例,以实战为主,以指导读者打造无错、稳定、快速运行的数据库为根本目的
(3)本书内容全面,从SQL优化、架构设计、开发规范、平台审核等多个角度展开,可以作为DBA日常工作中处理常见问题的备查手册。
內容簡介:
SQL是*重要的关系数据库操作语言。SQL语句的运行效率,对于数据库的整体性能至关重要。因此,SQL语句的优化就成为数据库专业人员必须掌握的一门技能。很多初学者经常有如何入门、提高SQL语句优化能力的困惑。本书规避了市面上大多关于SQL优化的书籍内容过于深奥问题,以一线开发工程师的言语和视角展开,理论与实践并重,不仅适合初学者,也适合中端技术人员。
本书以大量案例为依托,系统讲解了SQL语句优化的原理、方法及技术要点,尤为注重实践,在章节中引入了大量的案例,便于学习者实践、测试,反复揣摩。
全书分为四篇:
引言篇,总结了实际工作中常见的问题,并通过真实案例让读者直观感受到SQL语句优化的重要。同时在每个案例后面,还针对案例出现的问题进行了总结;
原理篇,主要讲解了和SQL语句优化相关的基础知识及必要的一些操作,包括优化器、成本、执行计划、统计信息、语句解析、游标、绑定变量、数据对象等诸多方面;
优化篇,这是本书的重点,详细讲述了优化器对于SQL语句的多种处理方式,包括查询转换、数据对象访问方式、表关联、半反连接、子查询、排序、并行等等。读者了解了这些方式,可以更好地理解优化器的行为,也就使优化更加有的放矢。这部分实战性极强,读者可以作为案头参考资料,随时查阅,反复实践;SQL是*重要的关系数据库操作语言。SQL语句的运行效率,对于数据库的整体性能至关重要。因此,SQL语句的优化就成为数据库专业人员必须掌握的一门技能。很多初学者经常有如何入门、提高SQL语句优化能力的困惑。本书规避了市面上大多关于SQL优化的书籍内容过于深奥问题,以一线开发工程师的言语和视角展开,理论与实践并重,不仅适合初学者,也适合中端技术人员。
本书以大量案例为依托,系统讲解了SQL语句优化的原理、方法及技术要点,尤为注重实践,在章节中引入了大量的案例,便于学习者实践、测试,反复揣摩。
全书分为四篇:
引言篇,总结了实际工作中常见的问题,并通过真实案例让读者直观感受到SQL语句优化的重要。同时在每个案例后面,还针对案例出现的问题进行了总结;
原理篇,主要讲解了和SQL语句优化相关的基础知识及必要的一些操作,包括优化器、成本、执行计划、统计信息、语句解析、游标、绑定变量、数据对象等诸多方面;
优化篇,这是本书的重点,详细讲述了优化器对于SQL语句的多种处理方式,包括查询转换、数据对象访问方式、表关联、半反连接、子查询、排序、并行等等。读者了解了这些方式,可以更好地理解优化器的行为,也就使优化更加有的放矢。这部分实战性极强,读者可以作为案头参考资料,随时查阅,反复实践;
实践篇,从数据设计开发规范、数据库画像、SQL优化方法论、AWR报告解读及数据库审核平台实践等几个角度全面讲解在实际工作中如何通过优化SQL,大幅度提高数据库的性能。
關於作者:
这是一本全方位分享如何高效优化数据库的一线实践指导书,书中内容来自阿里巴巴、PingCAP及某高校三个不同方向的数据库专家的日常实践。本书撰写的目的是帮助读者亲手打造无错、稳定、快速运行的数据库。
本书包含大大小小100多个实践案例,所有内容均从一线开发工程师的角度展开,只讲必要的理论,把大部分精力放在实战上。所以本书特别适合Oracle数据库开发人员、数据库架构师、数据库管理员放于案头,在实际工作中遇到问题时随手查看。
本书分为四大部分:
第一部分为引入篇(第0~1章)总结了进行SQL语句优化时可能会面临的问题、常见的关于SQL优化的误区,并通过笔者曾经处理过的几个案例帮读者更直观认识到SQL语句优化的重要。
第二部分为原理篇(第2~9章):深度分析了与SQL优化相关的所有原理知识,包括优化器、执行计划、统计信息、SQL解析、游标、绑定变量,以及SQL语句的实体对象和物理上的存储方式。这是一本全方位分享如何高效优化数据库的一线实践指导书,书中内容来自阿里巴巴、PingCAP及某高校三个不同方向的数据库专家的日常实践。本书撰写的目的是帮助读者亲手打造无错、稳定、快速运行的数据库。
本书包含大大小小100多个实践案例,所有内容均从一线开发工程师的角度展开,只讲必要的理论,把大部分精力放在实战上。所以本书特别适合Oracle数据库开发人员、数据库架构师、数据库管理员放于案头,在实际工作中遇到问题时随手查看。
本书分为四大部分:
第一部分为引入篇(第0~1章)总结了进行SQL语句优化时可能会面临的问题、常见的关于SQL优化的误区,并通过笔者曾经处理过的几个案例帮读者更直观认识到SQL语句优化的重要。
第二部分为原理篇(第2~9章):深度分析了与SQL优化相关的所有原理知识,包括优化器、执行计划、统计信息、SQL解析、游标、绑定变量,以及SQL语句的实体对象和物理上的存储方式。
第三部分为SQL篇(第10~16章):主要围绕SQL语句层面的优化实践展开,主要介绍了查询转换、数据对象的访问方式、多种SQL优化操作、常见的优化手段(如表关联、半/反连接、子查询、排序、并行等)等内容。
第四部分为实战篇(第17~22章):这是本书的重点,详细介绍了如何从结构设计、SQL开发等出发制定一系列的规范;如何建立完善的数据库架构设计评估模型;如何勾勒数据库画像,以帮助制定运维管理策略、技术方案、迁移方案等;如何打造数据库审核平台,以快速发现数据库中潜在风险。
本书附录部分介绍了数据库参数、数据字典、等待事件、提示、构造样例数据的方法等内容,可以协助读者进行实际操作。
目錄
推荐序
前 言
第一部分 引入篇
第0章 引言2
第1章 与SQL优化相关的几个案例4
案例1 一条SQL引发的血案4
案例2 糟糕的结构设计带来的问题6
案例3 规范SQL写法好处多9
案例4 月底难过11
案例5 COUNT*到底能有多快13
案例6 抽丝剥茧找出问题所在17
第二部分 原理篇
第2章 优化器与成本22
2.1 优化器22
2.1.1 基于规则的优化器23
2.1.2 基于成本的优化器25
2.1.3 对比两种优化器26
2.1.4 优化器相关参数27
2.1.5 优化器相关Hint30
2.2 成本35
2.2.1 基本概念35
2.2.2 计算公式36
2.2.3 计算示例36
第3章 执行计划40
3.1 概述40
3.1.1 什么是执行计划40
3.1.2 库执行计划存储方式42
3.2 解读执行计划43
3.2.1 执行顺序43
3.2.2 访问路径45
3.3 执行计划操作45
3.3.1 查看执行计划45
3.3.2 固定执行计划72
3.3.3 修改执行计划80
第4章 统计信息84
4.1 统计信息分类84
4.1.1 系统统计信息84
4.1.2 对象统计信息87
4.1.3 数据字典统计信息109
4.1.4 内部对象统计信息109
4.2 统计信息操作109
4.2.1 系统统计信息110
4.2.2 对象统计信息111
4.2.3 数据字典统计信息115
4.2.4 内部对象统计信息115
第5章 SQL解析与游标116
5.1 解析步骤116
5.2 解析过程117
5.3 游标示例119
第6章 绑定变量122
6.1 使用方法122
6.2 绑定变量与解析124
6.3 游标共享129
第7章 SQL优化相关对象131
7.1 表131
7.2 字段137
7.3 索引140
7.4 视图148
7.5 函数149
7.6 数据链(DB_LINK)150
第8章 SQL优化相关存储结构153
8.1 表空间153
8.2 段154
8.3 区155
8.4 块156
第9章 特有SQL160
9.1 MERGE160
9.2 INSERT ALL162
9.3 WITH162
9.4 CONNECT BY START WITH163
第三部分 SQL篇
第10章 查询转换166
10.1 查询转换的分类及说明166
10.2 查询转换子查询类167
10.3 查询转换视图类174
10.4 查询转换谓词类178
10.5 查询转换消除类180
10.6 查询转换其他181
第11章 访问路径189
11.1 表访问路径189
11.1.1 全表扫描189
11.1.2 ROWID扫描193
11.1.3 采样扫描194
11.2 B树索引访问路径195
11.3 位图索引访问路径205
11.4 其他访问路径210
第12章 表间关联215
12.1 关联关系215
12.2 表关联实现方法218
12.3 嵌套循环连接220
12.4 排序合并连接226
12.5 哈希连接232
12.6 其他连接方式238
第13章 半连接与反连接243
13.1 半连接243
13.2 反连接246
第14章 排序250
14.1 引发排序的操作250
14.2 避免和减少排序251
14.2.1 优化原则及基本方法251
14.2.2 避免排序的示例252
14.3 排序过程及内存使用255
14.4 执行计划中的Sort258
第15章 子查询262
15.1 处理方式262
15.2 子查询分类263
15.2.1 按照语法分类263
15.2.2 按照谓词分类263
15.2.3 示例264
15.3 子查询优化266
15.4 子查询特殊问题272
15.4.1 空值问题272
15.4.2 OR问题274
15.4.3 [NOT] INEXISTS问题275
第16章 并行276
16.1 并行操作276
16.1.1 并行查询277
16.1.2 并行DML280
16.1.3 并行DDL283
16.2 并行级别286
16.3 并行原理286
16.3.1 从属进程286
16.3.2 粒度287
第四部分 实践篇
第17章 数据库设计开发规范292
17.1 Oracle结构设计规范292
17.1.1 建模工具292
17.1.2 命名规范294
17.1.3 数据类型296
17.1.4 表设计297
17.1.5 字段设计299
17.1.6 约束设计299
17.1.7 索引设计300
17.1.8 视图设计303
17.1.9 包设计303
17.1.10 范式与逆范式304
17.1.11 其他设计问题305
17.2 Oracle开发规范306
17.2.1 书写规范306
17.2.2 编码规范307
17.2.3 注释规范307
17.2.4 语法规范308
17.3 MySQL结构设计规范312
17.3.1 命名规则313
17.3.2 使用原则314
17.3.3 规模规则315
17.3.4 字段规则315
17.3.5 索引规则319
17.3.6 字符集321
17.3.7 逆范式设计321
17.4 MySQL开发规范322
17.4.1 基本原则322
17.4.2 语句规范322
第18章 架构设计之数据库承载力评估327
18.1 评估工作327
18.1.1 建立性能基线327
18.1.2 建立业务压力模型329
18.1.3 模拟压力测试331
18.2 优化步骤331
第19章 数据库画像335
19.1 你了解你的数据库吗335
19.2 画像设计思路336
19.3 画像报告解读336
19.3.1 概要信息336
19.3.2 空间信息336
19.3.3 对象信息337
19.3.4 访问特征339
19.3.5 资源消耗341
19.3.6 SQL语句342
第20章 数据库审核平台实践:功能343
20.1 背景说明343
20.2 平台选型347
20.3 平台定位348
20.4 平台原理349
20.5 推进方法350
第21章 数据库审核平台实践:实现352
21.1 平台设计352
21.2 流程图354
21.3 数据结构355
21.4 主要模块356
21.4.1 数据采集356
21.4.2 规则解析358
21.4.3 系统管理364
21.5 审核结果展示366
第22章 数据库审核平台实践:规则370
內容試閱
为什么要写这本书
我曾长期从事ERP、电子政务类软件的开发工作,作为数据库的深度使用者,接触到大量数据库,如FoxPro、SQLServer、Oracle、Informix在实践过程中,对这一领域也愈发感兴趣,并最终选择从事数据库相关工作。我曾长期担任多家公司DBA、数据库架构师,参与过很多项目的数据库设计、开发、优化工作,并在这一过程中积累了不少经验。特别是近期的一段工作经历,让我有机会将之前对数据库的很多想法积累沉淀下来,与此同时,我还和团队伙伴一起不断实践改进,也取得了不错的效果。
在多年的工作中,我发现数据库领域存在一些现象。
现象一,开发人员将数据库视为黑盒子。开发人员不关心、不重视数据库,也不了解SQL语句的执行情况、数据库的运行机制,甚至因为引入很多ORM工具,导致开发人员不了解数据库是如何完成请求并获得数据的,优化自然无从谈起。
现象二,SQL优化只是DBA的事情。在很多设计、开发、测试人员的眼中,SQL优化只是DBA的事情,他们不需要去关心。反映到具体工作中,他们缺乏相应的优化意识,只注重功能的实现而忽略了相应的执行成本。最终的结果往往就是代码质量不高,软件上线后问题多。
现象三,盲目优化。有些公司很重视SQL优化工作,但又缺乏必要的技术投入。经常见到这样的开发规范所有WHERE条件字段都必须加上索引,结果就是数据库被过分优化,适得其反。
现象四,SQL优化很简单。有些人认为SQL优化很简单,甚至觉得SQL优化就是加索引的事!我就曾遇到因为索引过多导致执行性能低的案例。
现象五,硬件技术发展很快,不用再计较SQL优化。硬件技术近年来发展迅速,使得服务器的处理能力有了极大的提升。但我们要清醒地看到,SQL优化才是问题的根本解决之道。
现象六,开发人员想提高SQL语句质量却无从下手。有些开发人员认识到了SQL语句质量的重要性,想要提高却无从下手。一方面,他们本身不具备数据库的专业知识;另一方面,SQL编程本身也有其特殊性,与其他常用开发语言有较大差异。正是这些因素,导致开发人员想要提高SQL语句质量却困难重重。
现象七,重运行维护,轻开发优化和架构设计。大多公司意识到了数据库的重要性,但往往只重视运维而忽视了前期的架构设计、开发优化。我们经常会看到一个项目中,公司会花大笔费用购买昂贵的硬件、备份软件等,却不舍得购买与数据库优化、SQL审计相关的软件。此外,随着自动化运维的逐步推广以及数据库云服务的逐渐成熟,传统意义的数据库运维工作必然会逐步萎缩,取而代之的则是数据库的设计、开发乃至整体架构开发。这也是DBA未来发展的一个方向。
现象八,资料繁多,却无从选择。Oracle数据库在国内流行多年,该领域的书也非常多,但涉及优化书的相对较少,特别是局限在SQL语句优化范畴的。近年来,我也发现了几本不错的书,但普遍存在技术偏深、可操作性不强的问题,对于广大数据库开发的初学者或者有一定经验但急需提高的从业者不太适用。
上述种种现象促使我有了将多年的经验汇集成册、编写出版的想法。一方面是能够帮助有相关需求的人,另一方面也是对自己多年的工作进行总结。最后,希望这本书能够引导开发人员、DBA在SQL语句的编写优化上能有进一步提高。倘若本书能够帮助大家解决实际工作中遇到的问题,我将非常荣幸。
本书特色
本书具有以下几个特点:
书中内容由项目而生,以一线开发工程师的视角展开。
注重实战。几乎所有的章节都配有代码,读者可在实际工作环境中直接编写代码并运行。大部分代码附有详细的说明,便于读者理解。
涵盖了SQL语句的诸多方面,特别是第二部分,可作为工作手册供大家优化时查阅使用。
读者对象
本书主要讲解了与Oracle数据库的SQL语句优化相关的内容,除了个别Oracle自有的优化特性外,书中介绍的核心优化思想也适用于其他关系型数据库。书中没有讲解Oracle体系结构和SQL语言本身,这里假设大部分人已熟悉Oracle和SQL语言。
具体来说,本书适读的重点对象包括但不局限于下列人员:
Oracle数据库开发人员。
数据库架构师、数据库管理员。
其他关系型数据库的从业者。
对SQL语句优化感兴趣的人员。
大专院校计算机相关专业的学生。
如何阅读
本书分为四大部分。
第一部分为引入篇(第0~1章)。
这部分首先结合我多年的工作经验,总结了SQL语句优化时可能会面临的一些困难,然后讲述了一些常见的关于SQL优化的误区,以便读者正确看待SQL语句优化。
第1章讲述了我曾经处理的几个案例。通过这些活生生的案例,可以让读者更直观地感受到SQL语句优化的重要性。同时在每个案例后面,我还针对案例出现的问题进行了总结。
第二部分为原理篇(第2~9章)。
第2章讲述了SQL语句优化的核心组件优化器,以及优化的最基础概念成本。这部分非常重要,建议初学者仔细阅读。
第3~6章介绍了和优化相关的几个重要概念:执行计划、统计信息、SQL解析、游标、绑定变量。这部分较为基础,建议初学者根据情况选择阅读。
第7~8章介绍了SQL语句的实体对象及它们在物理上是如何存储数据的。这部分对于数据库结构设计有较大帮助。此外,在对SQL语句进行优化时,也需要考虑相关对象,因为优化措施可能会影响该对象的其他语句,需要统筹考虑。
第9章介绍了Oracle专有的一些SQL语句。使用这些语句有时可以达到意想不到的效果。如果你不考虑数据库平台迁移的问题,可以充分利用这些语句。
原理篇是我们是迈入实践篇的基础,它几乎覆盖了SQL优化相关的所有原理知识。通过对这些内容的学习,读者可以为后面的SQL优化打下良好的基础。如果你已经拥有相关知识基础,可以直接进入实践篇。
第三部分为SQL篇(第10~16章)。
第10章介绍了一个重要的优化手段查询转换。这章内容相对来说比较难,市面上相关资料较少,可作为重点来看。
第11章介绍了数据对象的访问方式。这章内容非常基础,也可作为重点来看。
第12~16章介绍了多种操作及常见的优化手段,包括表关联、半反连接、子查询、排序、并行等。对于这部分内容,读者可根据实际需求有重点地阅读。
第四部分为实践篇(第17~22章)。
第17章针对不同的数据库,如Oracle及MySQL等,详细介绍如何从其结构设计、SQL开发等方面制定一系列的规范,目的是让一线的架构、研发、运维人员有章可循。
第18章主要分析建立完善的数据库架构评估模型的方法。通过建立性能基线和业务压力模型来模拟压力测试,以及根据测试结果来确定优化方案。根据性能问题的相关特征,如整体或局部、偶尔慢还是持续慢等,从语句级、对象级、数据库级、数据库架构级、应用架构级、业务架构级等维度逐层分析,找到问题的瓶颈点。
第19章主要介绍勾勒数据库画像的方法。数据库画像,即依托于现有的数据库对象、语句、访问特征、性能表现等进行数据的采集和分析,帮助我们形成对数据库的基本认知,并据此来制定运维管理策略、技术方案、迁移方案以及工作量等。
第20~22章深度剖析打造数据库审核平台的方法。借助平台设定的审核规则,我们可以快速发现数据库中潜在的风险。对于研发人员而言,可以借助平台来定位问题,并且达到辅助设计和开发工作的目的。对于DBA而言,可以借助平台快速掌握多个系统的整体情况,批量筛选低效SQL,以及快速诊断一般性问题。
附录部分介绍了前面各章节提到的数据库参数、数据字典、等待事件、提示等内容,以及如何构造样例数据,方便读者实际操作。
以上是本书各章的要点和写作思路,希望有助于读者阅读。
勘误和支持
由于水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。大家可以通过邮箱hanfeng7766@126.com与我取得联系,我将尽量为大家提供满意的解答。期待能够得到大家的真挚反馈。
致谢
首先要特别感谢本书另外两位作者,因为他们与我共同努力,才有了本书的出版。其中,高振娇老师在数据库优化方面拥有丰富的实战经验,她把自己多年的心得都凝聚成文字,毫无保留地融入本书,在此感谢她的无私付出;马立和老师在本书撰写过程中也付出很多,在此对他的无私付出表示感谢。
其次要感谢每位帮助过我及另外两位作者的老师、同事,是你们让我们有了学习和总结的机会。感谢宜信公司的各级领导对我们的支持和鼓励,这也充分体现了宜信开放、分享的企业文化。
还要感谢机械工业出版社华章公司的编辑孙海亮,在这一年多的时间中耐心支持我们的写作。写作过程漫长而艰辛,正是你的鼓励和帮助,引导我们顺利完成全部书稿。
更要感谢曾经的宜信数据库团队的小伙伴们,你们在工作上团结一致、勇于实践,在技术上不断突破。正是这样一支朝气蓬勃的团队,在不断鞭策我努力前行。同时,我也很欣慰地看到团队成员的快速成长。目前,他们都在各大IT公司发挥着中坚骨干的作用。这里一并感谢郑继伟、王琦、袁友、邵航、俄广宁、赵玉龙、邢兆柳、金京、荣淮海、孙帅佳、林绅武等(排名不分前后)。
最后,谨以本书献给我及团队成员的家人和朋友,以及正在为自我实现而奋斗的、充满朝气的IT工程师们!
韩 锋

 

 

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