数据库性能优化浅析
从奥运会门票销售系统瘫痪发生以来,我写了一篇再显数据库软肋的文章,在网络上引起了热议。很多网友也给我发信表达了他们的看法,本人深受启发,增长了很多的知识。奥运门票系统事件以来,大家对数据库的优化更加感兴趣。虽然我本人对高性能系统有其他非数据库观点,但是理论上讲,通过合理的优化,数据库是可以支撑高压力访问的。有很多网友跟我说,既然我认为数据库有问题,为什么不写一篇数据库优化的文章?本人一直从事数据库优化,分布式系统领域工作的,才疏学浅,但还是想把自己对数据库优化的看法写出来,欢迎大家讨论,共同提高。
互联网系统区别于erp,boss等系统的最大区别就是它的技术架构把的高性能的要求放在了首位,因为每天都有来自全球各地的对服务器的访问
。
1。性能定位。
在对一个后台数据库系统进行调优之前,一定要定位性能的瓶颈。但是复杂的后台系统往往是各种系统的对立统一的整体,消除了这个瓶颈,可能另外的以前不是瓶颈的地方又成为瓶颈。典型的有减少磁盘访问次数,但是数据就要占用内存等。可以用“排队法”来进行建模。假如请求随机到来,计算机的各种资源包括cup,磁盘,内存等的利用率会保持健康值。不断加压,直到各种资源的利用率到达危险值时,队列开始阻塞,后面发过来的请求就不会被处理。这时,记下这个队列长度和计算机的资源占用数据,然后开始调优,比较各种资源的数据,反复进行。直到你认为不会再有调优可能,大压力下,队列仍然很短,再开始进行服务器的分布。以上就是大概的思路。
2。设计调优。
数据库的设计调优是最普遍的,一般凡是发现性能有问题,第一个想到的就是它的表设计是不是有问题了。减少表的关联,减少关系数据,感觉似乎要违背范式的天条,但是为了性能,这时最普遍的做法。
3。索引,事务优化。
为了查询速度快,针对某个字段建立索引,一般比较快的索引就是hash和b+数。但是你的需求要保证尽量少的更新这个索引。事务的话就是要尽可能的保证不要上锁,一个事务在查询,另一个在更新,如果解除了锁,效率肯定高,但是查询不保证准确。高性能数据库设计原则就是尽量减少锁。还有数据库日志系统等。
4。数据库参数调整。
每个商用数据库都有很熟的技术支持人员和详细的培训手册,不再叙述。
5。硬件调整。
现在的数据库一般都把文件系统建立在磁盘上,如果一个数据库访问量巨大,那么磁盘的工作量就非常大。如果,经过性能定位,发现的确是磁盘问题,下一步就是要增加磁盘,而不是更换磁盘。使一个频繁访问的大文件系统分布在若干磁盘上要比世界上最高效的一个磁盘要好。这是在硬件层次上的分布。当然,如果选用RAID,那么到底是RAID几还要根据具体情况考虑了。内存调整,要看具体需求,如果一条记录在几分钟之内会在被访问,就把它放到内存里。内存和磁盘的比例要看具体财力和实际需求了。
当今数据库有着非常强大的功能和各种各样的组件,想达到什么目的都没有问题。财力雄厚,可以直接购买成熟的商用数据库,解决后顾之忧;财力不足,采用开源产品,也是不错的选择。
分享到:
相关推荐
### Oracle数据库性能优化浅析 #### 一、引言 SQL作为数据库查询语言,其编写质量直接影响着数据库系统的整体性能。对于Oracle数据库而言,优化SQL查询不仅能够提高查询效率,还能减少系统资源消耗,进而提升整个...
综上所述,Oracle数据库性能优化是一个涉及多个方面的系统工程,包括对SQL语句的精心优化、内存的合理分配和调整,以及磁盘I/O的精细管理。通过这些优化方案的综合应用,可以显著提升数据库的执行效率,保障系统的...
Redis 架构下的 MySQL 数据库性能提升浅析 I. Redis 架构简介 Redis 是一个基于 key-value 的高速缓存系统,具有性能高、数据类型丰富、复杂度低以及优化部分 bug 的优点。在互联网时代,快速开发是一个不变的需求...
下面是浅析 SQL Server 数据库性能优化的一些关键知识点: 1. 索引优化:索引是数据库中的一种数据结构,用于快速定位和检索数据。创建合适的索引可以大幅提高查询性能。常见的索引类型包括聚簇索引、非聚簇索引、...
综上所述,Oracle数据库性能优化是一个涉及多方面的综合工程,需要从服务器硬件、操作系统、数据库配置、网络性能以及应用程序设计等多角度进行深入分析和调整。通过细致入微的优化,可以确保Oracle数据库在面对大量...
Oracle数据库性能优化是关系型数据库管理领域的一个重要话题,它直接关系到数据库应用系统的响应速度和用户体验。本文将着重探讨如何通过对索引、表分区和优化器模式等技术的应用来优化Oracle数据库性能。 首先,...
标题《基于SQL SERVER的数据库查询优化浅析.pdf》和描述“尽管SQL SERVER数据库系统应用很广,效率很高,但在实际应用过程中还需要不断具体优化,才能使***VER的潜能充分发挥出来。可以从服务器、客户端硬件和软件、...
Oracle数据库性能优化是一个系统性的工程,涉及到数据库的多个核心组件,包括系统全局区域(SGA)、共享池、数据缓冲区高速缓存、重做日志缓冲区、PGA(程序全局区域)以及磁盘I/O等多个方面。下面将根据提供的文件...
随着计算机技术的快速发展,对数据库的性能要求越来越高,数据库性能优化已成为数据库管理不可或缺的一部分。 一、SQL Server数据库特点与基本功能 1. SQL Server数据库特点 (1) 开放性:SQL Server数据库设计上...
数据库性能优化的一个关键步骤是规范化,遵循第一范式、第二范式、第三范式等规范,以消除数据冗余和提高数据一致性。然而,过度规范化可能导致查询效率下降,因此有时需要反规范化,如分割表、保留冗余列或增加派生...
"浅析分布式数据库查询优化" 分布式数据库查询优化是分布式数据库系统中的一个关键技术,旨在提高分布式数据库查询的性能和效率。分布式数据库系统是一个物理上分散而逻辑上集中的数据库系统,使用计算机网络将地理...
浅析Oracle数据库的性能优化方案.pdf
《浅析Oracle数据库的性能优化》一文主要探讨了如何提升Oracle数据库的运行效率和响应速度,以应对数据量巨大、用户需求增多的情况。作者基于长期的监测和维护经验,提出了几个关键的优化策略。 首先,调整数据结构...
本文主要围绕SQL语句在Oracle数据库环境下的性能优化进行探讨,涵盖了Oracle表数据的访问方式、索引的建立、SQL语句的性能状态数据收集、操作符的选择等方面,以提供给数据库应用和开发人员优化建议。 1. Oracle...
Sybase数据库系统的性能调优是一个...总的来说,Sybase数据库性能调优是一个综合性的工程,涉及多层面的协调和优化。只有通过深入理解系统的工作原理,结合实际情况,才能制定出有效的优化策略,达到最佳的运行状态。
【JDBC连接MySQL数据库的方法浅析】 JDBC(Java Database Connectivity)是Java语言中用于与关系型数据库交互的标准API,由Sun ...在实际项目中,开发者应根据需求选择合适的JDBC驱动类型,并注意性能优化和安全问题。
【Oracle数据库优化】Oracle数据库是广泛应用的关系型数据库管理系统,其性能优化对于整个计算机信息系统至关重要。优化数据库不仅可以提高系统效率,而且往往比单纯升级硬件设备更有效。本文将探讨通过优化SQL语句...
存储过程是由Transact-SQL创建并可修改的,是数据库性能优化的重要工具。良好的SQL Server应用程序应广泛使用存储过程,无论业务逻辑是否内置其中。存储过程可以接受输入参数并以不同方式返回数据,提高数据处理...
数据库性能优化不应只关注硬件升级或数据库参数调整,优化应用程序特别是SQL语句是至关重要的。优化策略应包括:网络、硬件、操作系统、数据库参数和应用程序等多个方面,而应用程序优化占据主导地位。 7. SQL语句...
在当前的IT领域,数据库管理系统(DBMS)是构建和维护数据存储的核心技术之一,尤其在处理大批量数据时,其性能优化显得尤为重要。本文旨在浅析在数据库管理系统中,如何有效进行大批量数据处理的优化技术。 首先,...