
罗炳森 黄超 钟侥
结构化查询语言(Structured Query Language,SQL)是一种功能强大的数据库语言。它基于关系代数运算,功能丰富、语言简洁、使用方便灵活,已成为关系数据库的标准语言。本书旨在引导读者掌握SQL优化技能,以更好地提升数据库性能。本书共分10章,从SQL基础知识、统计信息、执行计划、访问路径、表连接方式、成本计算、查询变换、调优技巧、经典案例、全自动SQL审核等角度介绍了有关SQL优化的方方面面。本书基于Oracle进行编写,内容讲解由浅入深,适合各个层次的读者学习。本书面向一线工程师、运维工程师、数据库管理员以及系统设计与开发人员,无论是初学者还是有一定基础的读者,都将从中获益。
#小曾曾读书笔记#《SQL优化核心思想》,从底层原理、优化命令和SQL语法多方面,解读SQL优化的主要方法和技巧,对于从事DBA的同学用户较大,对于数分同学有一定启发。 SQL优化的核心观点: 1、只有大表才会产生性能问题 2、目标:减少SQL的物理I/O次数 SQL优化方向:表数据量;SQL写法(标量子查询、关联、自定义函数、筛选);执行计划;业务逻辑。 对于数分,除了DBA侧的从执行计划入手外,几个常用的tips可以牢记在心: 1、Select……From……Where三段法拆分SQL 2、避免写Select * 3、避免标量子查询 4、避免一个表被反复查询多次 5、提前限制提取字段
FULL SCAN是多块读,INDEX FULL SCAN是单块读,即使使用了INDEX FAST FULL SCAN会产生额外的排序操作,也要用INDEX FAST FULL SCAN代替INDEX FULL SCAN。 如果INDEX FULL SCAN有回表,大多数情况下,这种执行计划是错误的,因为INDEX FULL SCAN是单块读,回表也是单块读。这时应该走全表扫描,因为全表扫描是多块读。如果分页语句走了INDEX FULL SCAN然后回表,这时应该没有太大问题,具体原因请大家阅读本书8.3节。
推荐阅读,在工作中可以运用起来的实践思想。对我来说,分析大表的数据分布情况,在 SQL 优化中都取得很不错的效果。
看一半弃了,主要是被排版劝退的,代码很多,手机看换行频繁很难受乱糟糟的,pad也还是一样,sql执行结果的展示部分我宁愿是一张图或者表格。最后吐槽下微信读书,pad横屏强制分成两栏真的太坑了。
通过本书详细了解了从执行计划层面优化sql的相关知识。书中用大量实例讲解了调优技巧和原则,通俗易懂,相信以后再遇到sql语句导致的性能问题时更有信心解决了。
内容不错,思路也正确,但是有的情况现实中用不到啊,比如两个超大表join,我觉得我们cto会打死我……所以思路很对,但是对我们普通开发很难懂,dba应该会觉得容易理解的多,所以我收藏了作为手册吧,四星鼓励吧[呲牙]
系统全面的讲解了sql优化的一些核心思想。为什么要统计信息,为什么执行计划中的rows不可信。在表与表的连接上,小表之间的连接应该走什么访问路径,大表之间的连接应该走什么访问路径;带有大量的优化案例,对案例讲解鞭辟入里,优化sql的分析讲解过程十分的详细,对于开发人员或者dba来说是不可多得的一本好书。
很好讲sql优化的书,没有太多废话,纯干货
挺好的,就是oracle在国内慢慢被取缔了。
一般,没讲原理性的东西,硬塞到你脑袋里的,有些地方讲的还是特定语境下的东西,关键是特定语境下的玩意,翻译有误就会误导读者走向错误的方向,所以这本书只能移除书架了