影响数据库性能的因素

论坛上的数据库爱好者们,对于数据库底层的各种细节,内幕,等待事件,隐藏参数等津津乐道,对于调整好一条SQL语句使之在查询优化器/查询引擎下能高性能运转具有巨大的满足感成功感,仿佛自己掌握了天下最有价值的真理,驾驭了天下最有难度的技术。但对于设计和开发出这个数据库系统的人来说,他们看到此情此景,只好躲在一边偷偷的笑了。那么问题来了,使用别人数据库的人被称为大师(如:OCM),那么自己写出一个数据库来的人又该称为什么呢?到底谁才是真正的高手呢?

数据库系统优化中的一些观点:
“系统性能出现问题进行优化,一定要深入了解数据库内部参数、等待事件、Latch、缓冲池、trace文件、查询/优化引擎等底层细节。”
这种观点往往出自数据库“高手”,这部分人以了解数据库底层实现细节而感到非常骄傲。但是从优化角度讲数据库的等待事件、Latch等指标高等等都只是问题的表象,懂得底层细节和内幕固然是好。但是解决问题的关键往往是在应用层进行优化。

“只要系统参数调整了,性能就能提高。系统优化应该调整那些参数…”
这种观点往往出自于一些偏运维和应用层的DBA,迷恋参数配置来调优。
调整系统参数是非常重要的,但不一定能解决性能问题,否则就不会有去IOE了,问题可能性最大的还是应用设计和开发问题。
同理,很多运维人员和系统架构师比较迷恋“Linux系统调优”。认为对“文件句柄数、磁盘子系统…”那些做了优化,就能提升整个应用系统的性能。其实不然。有些场景下,针对业务特点和应用类型做操作系统调优是能取到立竿见影的效果,但是大多数时候往往提升并不明显。所以最关键的还是找出瓶颈所在,对症下药。*/

“系统性能问题需要从架构上解决,与应用开发关系不大。”
系统性能与各个层面都有关,架构很重要,但应用开发也是非常重要的一环。

影响数据库性能的因素
1.业务需求和技术选型
2.应用系统的开发及架构
3.数据库自身
3.1表结构的设计
3.2查询语句
3.3索引设计
3.4Mysql服务(安装、配置等)
3.5操作系统调优
3.6硬件升级(SSD、更强的CPU、更大的内存)
4.数据架构(读写分离、分库分表等)

在很多情况下,数据库可能是互联网应用系统的瓶颈。但是单纯从数据库角度去做优化,可能未必能达到理想的效果。

说点题外话,最近看到很多公司使用中间件或者分布式数据访问层来做数据库分片,说明也许该公司业务发展很快。但另一个方面,也令人担忧,他们的数据库压力真的已经到了必须切分不可的程度了吗?分库分表真的像科普的那么简单吗?他们能搞定分库分表带来的成本和问题吗?有没有更合适的优化方法呢?
当然是有的。其实“过度设计”和“提前优化”就是系统万恶之源。

时间: 2024-10-25 03:55:24

影响数据库性能的因素的相关文章

不让链化现象影响数据库性能

正常情况下往表中新建记录时,数据库系统会将数据写入到块并会像这行记录提供一个ROWID值.这个值记录了这条记录在硬盘上存储的位置.在更新某条记录的时候,也是如此.数据库系统会根据ROWID的值将需要更新的记录从硬盘中读取到块中;然后更新完毕后,再将块中的记录保存到硬盘对应的位置.更新过程中,ROWID列的值通常情况下不会改变. 但是如果一个块的容量不能够容纳一条记录.也就是会所,当单个数据块没有足够的空间来保存新建的一行记录或者更新的某行记录时,就会发生链化现象.到一个数据库的容量不足以容纳一条

Tips:不要让临时表空间影响数据库性能

在Oracle数据库中进行排序.分组汇总.索引等到作时,会产生很多的临时数据.如有一张员工信息表,数据库中是安装记录建立的时间来保存的.如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据.对于这些临时数据,Oracle数据库是如何处理的呢? 通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内.在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据.但是这个分区的容量是有限的.当这个

影响服务器性能的因素和处理方法

第一.处理器 升级处理器相对如上两种而言就显得要困难很多,而且处理器购买非常困难,并不合适一般企业.另外,服务器的结构非常的复杂,对于操作的技术需求极高,升级过程显得非常的困难.不过对于入门级的处理器而言,采用这一手段进行升级就方便容易很多,且安装较为方便,无需太过考虑其他方面. 第二.硬盘 最开始使用的服务器硬盘一般多为入门级,也就是说基本上只是用来满足日常运营的,当需求提升时,一定无法满足需求.因此,如果条件允许,至少要拥有8MB甚至16MB Cache的硬盘.当然了,转速自然越大越好,只是

【性能优化】ORACLE数据库性能优化概述

   为了保证ORACLE数据库运行在最佳的性能状态下,在信息系统开发之前就应该考虑数据库的优化策略.优化策略一般包括服务器操作系统参数调整.ORACLE数据库参数调整.网络性能调整.应用程序SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信 分析评价ORACLE数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库吞吐量是指单位时间内数据库完成的SQL语句数目:数据库用户响应时间是指用户从提交SQL语句开始到获得结果的那一段时间.数据库用户响应时间又可以分为系统服务时间和

ORACLE数据库性能优化

实际上,为了保证ORACLE数据库运行在最佳的性能状态下,在http://www.aliyun.com/zixun/aggregation/32730.html">信息系统开发之前就应该考虑数据库的优化策略.优化策略一般包括服务器操作系统参数调整.ORACLE数据库参数调整.网络性能调整.应用程序 SQL语句分析及设计等几个方面,其中应用程序的分析与设计是在信息系统开发之前完成的. 分析评价ORACLE数据库性能主要有数据库吞吐量.数据库用户响应时间两项指标.数据库吞吐量是指单位时间内数据

对Oracle数据库性能优化技术的研究

大型关系数据库Oracle已经广泛应用于各行各业,如政府.交通.公安.电信.金融.能源等部门,并已逐渐成为企业信息化建设的重要数据库平台,但随着 Oracle 数据库规模的扩大,数据库用户人数的增加,数据库性能问题越来越突出,因此,有必要对 Oracle 数据库性能进行调整与优化, 使之在满足需求条件下,系统性能达到最佳和系统开销最小. 1.性能优化目标 1.1 缩短响应时间 响应时间是指从用户提交SQL语句到数据库返回结果集的第一行数据所需要的时间,缩短响应时间可以通过减小系统服务时间或用户等

不要让临时表空间影响Oracle数据库性能

在Oracle数据库中进行排序.分组汇总.索引等到作时,会产生很多的临时数据.如有一张员工信息表,数据库中是安装记录建立的时间来保存的.如果用户查询时,使用Order BY排序语句指定按员工编号来排序,那么排序后产生的所有记录就是临时数据.对于这些临时数据,Oracle数据库是如何处理的呢? 通常情况下,Oracle数据库会先将这些临时数据存放到内存的PGA(程序全局区)内.在这个程序全局区中有一个叫做排序区的地方,专门用来存放这些因为排序操作而产生的临时数据.但是这个分区的容量是有限的.当这个

Erlang open_port极度影响性能的因素

问题描述 Erlang的port相当于系统的IO,打开了Erlang世界通往外界的通道,可以很方便的执行外部程序. 但是open_port的性能对整个系统来讲非常的重要,我就带领大家看看open_port影响性能的因素.首先**open_port的文档: {spawn, Command} Starts an external program. Command is the name of the external program which will be run. Command runs o

SQL Server数据库性能的优化

server|数据|数据库|性能|优化 编者按:数据库性能优化和数据库管理系统密切相关,不同的数据库管理系统在具体操作上有很大不同.继本报连续在2003年第48期.49期上刊登<Sybase数据库性能调优>和<Oracle服务器性能调整攻略>,分别讨论了Sybase和Oracle数据库管理系统以后,本期我们将具体介绍SQL Server数据库的性能优化方法. 数据库是企业信息的核心,其应用水平的高低直接影响到企业管理水平.选择了一个高性能的数据库产品不等于就有一个好的数据库应用系统