要正确的优化
SQL
,我们需要快速定位能性的瓶颈点,也就是说快速找到我们
SQL
主要的开销在哪里?而大多数情况性能最慢的设备会是瓶颈点,如下载时网络速度可能会是瓶颈点,本地复制文件时硬盘可能会是瓶颈点,为什么这些一般的工作我们能快速确认瓶颈点呢,因为我们对这些慢速设备的性能数据有一些基本的认识,如网络带宽是
2Mbps
,硬盘是每分钟
7200
转等等。因此,为了快速找到
SQL
的性能瓶颈点,我们也需要了解我们计算机系统的硬件基本性能指标,下图展示的当前主流计算机性能指标数据。
从图上可以看到基本上每种设备都有两个指标:
延时(响应时间):表示硬件的突发处理能力;
带宽(吞吐量):代表硬件持续处理能力。
从上图可以看出,计算机系统硬件性能从高到代依次为:
CPU
——
Cache(L1-L2-L3)
——内存——
SSD
硬盘——网络——硬盘
由于
SSD
硬盘还处于快速发展阶段,所以本文的内容不涉及
SSD
相关应用系统。
根据数据库知识,我们可以列出每种硬件主要的工作内容:
CPU
及内存:缓存数据访问、比较、排序、事务检测、
SQL
解析、函数或逻辑运算;
网络:结果数据传输、
SQL
请求、远程数据库访问(
dblink
);
硬盘:数据访问、数据写入、日志记录、大数据量排序、大表连接。
根据当前计算机硬件的基本性能指标及其在数据库中主要操作内容,可以整理出如下图所示的性能基本优化法则:
这个优化法则归纳为
5
个层次:
1
、
减少数据访问(减少磁盘访问)
2
、
返回更少数据(减少网络传输或磁盘访问)
3
、
减少交互次数(减少网络传输)
4
、
减少服务器
CPU
开销(减少
CPU
及内存开销)
5
、
利用更多资源(增加资源)
由于每一层优化法则都是解决其对应硬件的性能问题,所以带来的性能提升比例也不一样。传统数据库系统设计是也是尽可能对低速设备提供优化方法,因此针对低速设备问题的可优化手段也更多,优化成本也更低。我们任何一个
SQL
的性能优化都应该按这个规则由上到下来诊断问题并提出解决方案,而不应该首先想到的是增加资源解决问题。
以下是每个优化法则层级对应优化效果及成本经验参考:
优化法则
|
性能提升效果
|
优化成本
|
减少数据访问
|
1~1000
|
低
|
返回更少数据
|
1~100
|
低
|
减少交互次数
|
1~20
|
低
|
减少服务器
CPU
开销
|
1~5
|
低
|
利用更多资源
|
@~10
|
高
|
- 大小: 30.2 KB
- 大小: 43.6 KB
分享到:
相关推荐
面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则面向程序员的数据库访问性能优化法则
#### 数据库访问优化法则简介 要实现有效的数据库访问性能优化,首先需要明确优化的目标和方向。一般来说,性能瓶颈往往出现在系统中响应时间最长或处理能力最弱的部分。例如,在数据传输过程中,网络速度可能是瓶颈...
面向程序员的数据库访问性能优化法则 本文面向数据库应用开发的程序员,旨在提供实用的数据库访问性能优化法则。以下是本文的要点: 一、数据库访问性能优化法则简介 为正确的优化SQL,我们需要快速定位性能瓶颈...
#### 数据库访问优化法则简介 为了帮助程序员更好地理解和掌握数据库优化的知识,本文将从数据库访问的角度出发,提出一套优化法则,并结合实例进行讲解。 ### 一、数据库访问优化法则 #### 1. 减少数据访问 数据...
### 数据库优化原则详解 #### 一、百万级数据库优化策略概述 在处理大规模数据时,高效的数据库设计和优化显得尤为重要。本文档旨在提供一系列针对百万级别数据量的数据库优化建议,适用于从事程序开发的程序员及...
数据库访问性能优化是提高应用程序效率的关键环节,尤其对于数据库应用开发的程序员而言,理解并掌握这一技能至关重要。本文主要以Oracle数据库为例,虽然其他关系型数据库可以参考,但不适用于KV数据库、内存数据库...
金字塔法则认为,MySQL性能优化的关键在于建立一个多层次的优化体系,从硬件层、操作系统层、数据库层、应用程序层到架构层进行全面优化。这一法则的提出,为MySQL性能优化提供了一个系统化的方法论,为开发人员和...
在数据库访问优化方面,索引的创建和使用至关重要。不恰当的索引可能增加数据操作的负担,但正确的索引能显著提升查询速度。索引就像是数据表的目录,允许快速定位数据。创建多个索引可以针对不同的查询模式提供加速...
2021年09月16日
#### 三、数据库访问性能优化法则 数据库访问性能优化可以从多个层面进行: 1. **减少数据访问**:这是优化中最基础的部分,意味着尽量减少从硬盘读取数据的需求。硬盘是访问速度较慢的设备之一,因此减少对其的...
用户在不同地理位置可以访问存储在不同地点的数据,而且不同的数据分布方式决定了不同的数据库设计和优化策略。 分布式数据库查询优化的基本方法主要包括查询转移和查询映射: 1. 查询转移是指在分布式数据库中,...
### MySQL数据库SQL优化 #### 一、SQL优化 在MySQL数据库管理中,SQL查询的性能直接影响到系统的响应时间和资源消耗。通过合理的SQL优化,可以显著提高数据处理速度,降低服务器负载,提升用户体验。 ##### 1.1 ...
### 基于成本的Oracle优化法则 #### 成本的概念 在探讨SQL语句的成本时,需要明确“成本”的双层含义。一方面,成本指的是由解释计划(如`explain plan`)工具引起的执行次数;另一方面,则是执行SQL语句过程中...