引言
对于一个从事 DBA 工作十几年的“老鸟”来说,你要问我管理数据库最头疼的事是啥?我会告诉你,无休止的优化会是很多 DBA 的噩梦,相信这也是很多同行的感受! 为什么会这样?是 DBA 的能力不行 ,做不好优化吗?
本文是关于数据库优化的专业文章,从文中可以看出数据库优化不只是 DBA 的事,而是需要所有相关人员在设计、开发测试、运维以及硬件选型等环节相互配合,这样才能最大可能地提升数据库的性能。
本文与很多数据库专著的不同之处就是作者能从一线开发工程师的角度去解读和探讨数据库优化的思路,同时给出了大量的代码示例和参考SQL,使得读者完全可以根据书中示例一一实践,有助于加深对数据库优化的理解。
在阅读本文的过程中,你也会欣喜地发现,作者在展开篇幅的同时,深入浅出地介绍了很多数据库的知识点 这些基础知识对于开发人员理解数据库的工作原理,以及 DBA 掌握和运维数据库,都会有巨大帮助!相信本文会帮到很多人。
本文将从目录、主要内容和读者对象给大家进行介绍,大家循序渐进的看就可以,你会发现内容越来越深,可以让你学习到更多的知识。希望本文能够帮助到大家的学习!
目录
主要内容
本文分为四大部分。
第一部分为引入篇(第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,以及快速诊断一般性问题。
这份【数据库高效优化:架构、规范与SQL技巧】共有438页,需要完整版的小伙伴,可以以下方式来获取!
本文特色和读者对象
1.本文具有以下几个特点:
- 文中内容由项目而生,以一线开发工程师的视角展开
- 注重实战 几乎所有的章节都配有代码,读者可在实际工作环境中直接编写代码并运行大部分代码附有详细的说明,便于读者理解。
- 涵盖了 SQL 语句的诸多方面,特别是第二部分,可作为工作手册供大家优化时查阅使用。
2.读者对象
本文主要讲解了与Oracle数据库的SQL语句优化相关的内容,除了个别Oracle自有的优化特性外,文中介绍的核心优化思想也适用于其他关系型数据库。文中没有讲解Oracle体系结构和SQL语言本身,这里假设大部分人已熟悉Oracle和 SQL语言。
具体来说,本文适读的重点对象包括但不局限于下列人员:
- Oracle数据库开发人员。
- 数据库架构师、数据库管理员。
- 其他关系型数据库的从业者。
- 对SQL语句优化感兴趣的人员。
- 大专院校计算机相关专业的学生。
希望本文能够帮助到大家的学习,让大家成长的更快,不断提升自己的价值!
也希望本文能够得到大家的喜欢,多多转发关注不迷路,后面持续更新好文!
本文地址:https://blog.csdn.net/weixin_50020950/article/details/109645518