| 商品基本信息,请以下列介绍为准 | |
| 商品名称: | SQL优化核心思想 |
| 作者: | 罗炳森 黄超 钟侥 |
| 定价: | 79.0 |
| 出版社: | 人民邮电出版社 |
| 出版日期: | 2018-04-01 |
| ISBN: | 9787115478498 |
| 印次: | |
| 版次: | 1 |
| 装帧: | 平装-胶订 |
| 开本: | 16开 |
| 内容简介 | |
| 结构化查询语言(Structured Query Language,SQL)是一种功能强大的数据库语言。它基于关系代数运算,功能丰富、语言简洁、使用方便灵活,已成为关系数据库的标准语言。 本书旨在引导读者掌握SQL优化技能,以更好地提升数据库性能。本书共分10章,从SQL基础知识、统计信息、执行计划、访问路径、表连接方式、成本计算、查询变换、调优技巧、经典案例、全自动SQL审核等角度介绍了有关SQL优化的方方面面。 本书基于Oracle进行编写,内容讲解由浅入深,适合各个层次的读者学习。本书面向一线工程师、运维工程师、数据库管理员以及系统设计与开发人员,无论是初学者还是有一定基础的读者,都将从中获益。 |
| 目录 | |
| 第 1章 SQL优化懂概念1 1.1 基数(CARDINALITY)1 1.2 选择性(SELECTIVITY)3 1.3 直方图(HISTOGRAM)7 1.4 回表(TABLE ACCESS BY INDEXROWID)13 1.5 集群因子(CLUSTERING FACTOR)15 1.6 表与表之间关系19 第 2章 统计信息21 2.1 什么是统计信息21 2.2 统计信息重要参数设置24 2.3 检查统计信息是否过期32 2.4 扩展统计信息37 2.5 动态采样42 2.6 定制统计信息收集策略47 第3章 执行计划49 3.1 获取执行计划常用方法49 3.1.1 使用AUTOTRACE查看执行计划49 3.1.2 使用EXPLAIN PLAN FOR查看执行计划52 3.1.3 查看带有A-TIME的执行计划54 3.1.4 查看正在执行的SQL的执行计划56 3.2 定制执行计划57 3.3 怎么通过查看执行计划建立索引59 3.4 运用光标移动大法阅读执行计划63 第4章 访问路径(ACCESS PATH)67 4.1 常见访问路径67 4.1.1 TABLE ACCESS FULL67 4.1.2 TABLE ACCESS BY USER ROWID71 4.1.3 TABLE ACCESS BY ROWID RANGE71 4.1.4 TABLE ACCESS BY INDEX ROWID72 4.1.5 INDEX UNIQUE SCAN72 4.1.6 INDEX RANGE SCAN73 4.1.7 INDEX SKIP SCAN74 4.1.8 INDEX FULL SCAN75 4.1.9 INDEX FAST FULL SCAN77 4.1.10 INDEX FULL SCAN (MIN/MAX)80 4.1.11 MAT_VIEW REWRITE ACCESS FULL83 4.2 单块读与多块读83 4.3 为什么有时候索引扫描比全表扫描更慢84 4.4 DML对于索引维护的影响84 第5章 表连接方式86 5.1 嵌套循环(NESTED LOOPS)86 5.2 HASH连接(HASH JOIN)90 5.3 排序合并连接(SORT MERGE JOIN)93 5.4 笛卡儿连接(CARTESIAN JOIN)95 5.5 标量子查询(SCALAR SUBQUERY)98 5.6 半连接(SEMI JOIN)100 5.6.1 半连接等价改写100 5.6.2 控制半连接执行计划101 5.6.3 读者思考103 5.7 反连接(ANTI JOIN)104 5.7.1 反连接等价改写104 5.7.2 控制反连接执行计划105 5.7.3 读者思考108 5.8 FILTER108 5.9 IN与EXISTS谁快谁慢111 5.10 SQL语句的本质111 第6章 成本计算112 6.1 优化SQL需要看COST吗112 6.2 全表扫描成本计算112 6.3 索引范围扫描成本计算116 6.4 SQL优化核心思想119 第7章 须掌握的查询变换120 7.1 子查询非嵌套120 7.2 视图合并125 7.3 谓词推入129 第8章 调优技巧133 8.1 查看真实的基数(Rows)133 8.2 使用UNION代 |
| 编辑 | |
| 1.不管是数据库开发人员、数据库运维人员、DBA亦或是应用程序开发人员、大数据开发人员等,SQL优化现在已经是这些从业者的专业技能。 2.SQL优化跟做数学题一样,没有思路,一辈子都做不出来。本书既提供了SQL优化核心思想,同时也包含了大量的SQL优化案例,甚至还提供了全自动SQL审核的思想以及代码。 3.本书的作者是业内知名SQL优化讲师,自2012年开始,累计培训过数千名数据库从业人员。 4.本书的绝大部分内容源自作者自2012年以来开办的“道森起点”SQL优化班,SQL优化班在网络上是数据库领域中很受欢迎的一门课程。 ·大量经典的案例,教你快速构建SQL优化解决方案。 ·教你编写SQL优化全自动脚本,快速提升工作效率。 ·每个知识点都提供了相应的案例及源代码,方便读者动手实验。 ·叹为观止的优化技巧,匪夷所思的优化案例。 |
我之前一直觉得,优化SQL无非就是加索引、避免全表扫描,再就是了解一些常见的函数优化技巧。直到我翻开了这本书,才意识到自己是多么的“井底之蛙”。这本书没有给我一堆堆的SQL语句让你去背,而是把“为什么”给讲透了。作者从数据库的物理存储结构、逻辑组织方式出发,娓娓道来,让你明白为什么某个操作会快,另一个操作会慢。我印象最深刻的是关于“缓存”的章节,书中解释了不同层级的缓存(如缓冲池、查询缓存等)是如何工作的,以及如何通过SQL的设计来提高缓存命中率。这对我启发很大,我过去很少考虑SQL语句本身对缓存的影响,更多的是从硬件和配置层面去考虑。此外,书中对“并发控制”的阐述也让我耳目一新。我之前对事务隔离级别只是模糊的概念,这本书则通过生动的例子,让我理解了不同隔离级别带来的性能和一致性权衡,以及如何根据业务场景选择合适的隔离级别。这本书真的不是一本“怎么做”的书,而是一本“为什么这么做”的书,它让你建立起对数据库原理的深刻理解,从而在面对任何SQL优化问题时,都能找到最本质的解决方案。
评分这本书简直让我醍醐灌顶,原以为SQL优化就是些增删改查的小技巧,谁知背后竟然蕴含着如此深邃的逻辑。阅读过程中,我常常会停下来,回想自己过去在开发中遇到的种种性能瓶颈,再对照书中的原理,豁然开朗。作者对于“慢查询”的剖析,不仅仅是列举了几种常见场景,更是深入到数据库底层的工作机制,比如索引如何影响查询效率,执行计划的生成逻辑,以及不同锁机制对并发性能的影响。我尤其喜欢书中关于“代价估算”的章节,它让我理解了为什么数据库优化器会做出某些看起来“奇怪”的决定,以及我们如何才能通过调整某些参数或重写SQL语句来引导它做出更优的选择。书中没有罗列大量的SQL语法,而是专注于那些能够从根本上提升查询效率的核心思想,这一点非常宝贵。以往我都是遇到问题就上网搜,结果往往是东拼西凑,治标不治本,读完这本书,感觉自己终于有了一套系统性的思维框架来面对SQL性能问题了。它不是那种速成的“秘籍”,而是需要反复揣摩、实践才能真正吸收的“内功心法”。
评分我之前是一名java后端开发者,在开发过程中经常会遇到性能问题,但对SQL优化总感觉力不从心,很多时候只能寄希望于 DBA 帮忙。读了这本书之后,我才真正体会到SQL优化是多么重要,而且其中的学问有多深。作者没有只停留在表面的SQL语法层面,而是深入到数据库引擎的内部机制,比如 B-tree 索引的底层实现原理,代价估算模型是如何工作的,以及不同类型的 Join 操作在性能上的差异。这些底层原理的讲解,让我对SQL的执行过程有了全新的认识。我尤其喜欢书中关于“写优化”的部分,我之前一直以为优化就是提升读性能,但这本书让我明白,对于高并发的写入场景,优化思路是完全不同的。它教会我如何通过批量操作、合适的事务管理以及减少锁竞争来提升写入效率。这本书的逻辑非常严谨,每个观点都有理论支撑,让我信服。它不是一本教你“抄作业”的书,而是教你“解题思路”的书,让我能够举一反三,面对不同的数据库和不同的场景,都能找到合适的优化方法。
评分这本书给我带来的不仅仅是技术上的提升,更多的是一种对问题本质的深刻洞察。在阅读过程中,我经常会反思自己过往的开发经历,发现许多曾经困扰我的性能问题,其实都可以用书中的理论来解释。作者非常擅长将复杂的概念用简单易懂的比喻和图示呈现出来,比如他解释“查询重写”时,并不是简单地罗列几种写法,而是让你理解背后的逻辑,知道什么时候应该重写,以及如何重写才能达到更好的效果。我特别欣赏书中关于“统计信息”的部分,让我明白了为什么数据库的优化器有时候会做出错误的判断,以及我们如何通过维护好统计信息来引导优化器做出更优的选择。这本书没有给我现成的“万能药”,而是给了我一套“诊断工具”和“治疗原则”,让我能够自己去分析问题,找到根源,然后对症下药。它让我明白,SQL优化不是一种技巧,而是一种思维方式,一种严谨的分析和权衡的过程。读完这本书,我感觉自己看SQL的眼光都变了,不再是简单的代码,而是对数据库内部运作机制的深刻理解。
评分这本书的内容,可以说是把我从一个“SQL调优的门外汉”直接送进了“殿堂”。过去,我总是在网上搜寻各种“SQL优化秘籍”,尝试各种看起来很神奇的技巧,但效果往往是时好时坏,而且对为什么会起作用,为什么会没作用,始终是一知半解。这本书彻底改变了我的认知。作者将SQL优化的过程解构成了一个个清晰的逻辑步骤,并且用非常易于理解的方式阐述了背后的原理。特别是关于“执行计划解读”的部分,我以前觉得它就是一堆晦涩的符号,但通过书中细致的讲解,我学会了如何去分析它,理解每一步的代价,从而找到性能瓶颈的真正所在。我之前总是盲目地加索引,认为越多越好,结果反而可能降低写入性能,这本书让我明白,索引的设计需要权衡,需要根据查询模式来决定。还有关于“数据倾斜”的处理,书中给出了多种思路和解决方案,让我大开眼界。这本书不是那种看完就丢的书,它更像是一本工具书,一本“思维指南”,我时不时都会翻出来,对照自己的实际工作,总能获得新的启发。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有