引言
对数据库性能进行优化是令人激动的,无论是对其进行性能需求分析、性能需求设计、性能问题定个位都是富于变化又充满挑战的工作,本章围绕“数据库性能”进行全面系统化的介绍,首先从数据库在现代软件栈中所处的位置出发,介绍数据库系统性能、涉及的人员、所做的事情、分析的视角以及面临的挑战;其次,以GaussDB样板对数据库查询处理的主要流程进行详细介绍,帮助大家理解数据库内部的处理流程,各个模块对整体性能的主要问题,以及相应模块在性能优化方面使用到的主要的技术和手段;最后,详细介绍数据库性能相关的关键技术与模块,本章内容大体分为:
1)性能优化系统概述
2)性能视角理解GaussDB查询处理流程
3)数据库高性能关键技术
4)高斯数据库性能优化总结
1 数据库性能优化系统概述
内容概要:本章不独立于数据库本身,把数据库看成是整个系统软件栈的基础软件层部分,对性能、资源、时延等本质内容进行原理上的说明,把数据库性能优化抽象成为对一般基础软件的研究。
目的:从计算机体系结构的角度对性能分析做理论上的铺垫,能够让读者后续对数据库性能优化的理解深入本质如系统资源、CPU、内存、IO等,能够让读者更加客观、具体的理解数据库性能问题。
1.1 数据库的软件栈视角
在深入数据库性能这个领域之前,我们需要明白数据库作为系统软件,如何把数据库的处理性能、吞吐量发挥到极致,其本质上是对整个计算机体系结构的研究,包含了所有的硬件组件和整个软件栈,同时随着近年新硬件、新技术的出现数据库的优化不断的下沉到OS、网络协议栈、硬件层,可以说包括几乎所有的硬件组件和整个软件栈。凡是处于处理路径的环节都可以对数据库的性能产生影响。
从上图中可以看到,数据库这一原本软件层的概念,从性能优化的视角他是全栈的,上层涉及到应用程序、客户端,下层涉及到硬件、网络协议等,确保各个组件模块之间在时序节奏上匹