下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

数据库如何进行性能调优?

作者:课课家教育     来源: http://www.kokojia.com点击数:1297发布时间: 2016-06-28 10:00:41

标签: 数据库性能调优MySQL

  我们常常能听到一些用户抱怨“这系统响应速度太慢了”、“软硬件需要升级了”等,这就需要用到性能调优了。性能调优一是为了获得更好的系统性能(就是在现有的系统运行基础上,优化一下使之运行得更好);二是通过性能调优来满足不断增加的业务需求。而数据库的性能优化是怎样的呢?

  生产数据库的性能会随着业务和数据的增长变得严重迟钝。每一个关键数据库性能的降低都可能会导致全面的业务损失。

  从技术上讲,性能优化可以从许多不同的层次下手——应用程序可以优化,数据库可以调整,或建立新的系统架构。但是,在生产中,这些问题往往会由IT运维来解决,采取某些对系统破坏性最低的措施实现提速。

  数据库管理员和开发人员有许多方法可以实现数据库性能调优。可以调整配置文件更好地适应数据库和底层架构条件,添加索引,执行存储过程,甚至修改架构将一些表非规范化。

  开发人员会显著影响使用数据库技术路线;需要处理哪些数据,如何检索这些数据都由他们决定。开发人员会灵活运用SQL优化客户端查询、实现缓存,并有效控制应用程序端带宽。或者,他们重写应用程序以便用上有前途的新数据库平台,例如NoSQL的衍生品。

  然而,所有类型的数据库最终都会出现一定程度的性能退化。更糟的是,许多开发人员单纯地认为,如果生产系统中有哪里变慢了,只要让IT人员简单地添加更多的基础设施就能搞定,这显然不是最佳的选择。

数据库如何进行性能调优?_性能调优_数据库_课课家

  定位数据库性能问题的五种方法:

  1.基础设施纵向升级。投入更多的计算资源是解决问题的通常办法,但这办法不一定可以提升性能。即使扩充了正确的资源池,能被有效利用的资源数量仍是有限的。对于承载于物理设备上的数据库而言,添加基础设施具有一定难度,而但虚拟或云托管的数据库则非常容易调配计算资源。

  2.横向扩展。一些类似群集化MySQL的数据库是可扩展的。然而,群集的实际规模限制或对分区技术的要求影响了应用程序一致性或可靠性。群集还要求改变系统管理模式,执行新的数据保护计划。

  3.激活归档。有时可以通过归档较旧的数据来保持性能。存档通常意味着一些数据不再完全有用,但也有像Rainstor或Oracle内置的混合列式压缩选项可以处理静态相关数据。由于数据变得更加静态和被压缩处理,对这些归档数据的分析查询性能增加了。

  4.利用闪存加速。闪存是一种很受欢迎的性能解决方案。当从战略上部署时,它可以加速的远远不止是一个数据库。闪存加速的一大优点是,闪存对数据库系统是透明的。闪存能被用作服务器或存储缓存(例如Fusion-io)或固态驱动器,还可以放在网络中,例如Astute Vis X全闪存存储。一些供应商,如Pernix Data,将服务器闪存汇集到自己的存储层,使得存储和服务器的界限变得模糊。闪存目前仍然非常昂贵,而且一些解决方案仅针对读取IO进行了优化,并不一定能够消除当前的数据库瓶颈。

  5.数据库引擎升级。对数据库性能进行优化的一个有意思的新办法是升级数据库内部引擎。例如,对于流行的MySQL和MongoDB数据库,你可以从Tokutek找到高性能(免费、开源的)版本的内部引擎进行替换。替换数据库引擎的过程对应用程序是透明的,不需要对基础设施进行任何更改。

  另外还有一个好处,由于数据库索引和写入数据的机制得到更新,数据库I/O操作也自然被一起优化,更充分发挥闪存的优点。在面对关键性能退化时,IT部门常常被迫作出缺乏可靠回报的巨额投资。为了避免在未来遇上越来越多基础设施性能问题,多留心以上列出的优化选项。更好的做法是,将这些选项放到第一位来主动探讨,你将可以避免数据库性能问题。

  Oracle数据库的性能调优很重要,难度也较大。数据库的性能调整是一个系统工程,涉及到方方面面,不能仅仅根据某个点的情况就断定数据库运行性能的好与坏。如何有效地进行调整,需要经过反反复复的过程。这都要在大量的实践中不断地积累经验,从而更好地进行数据库的性能调优。

赞(25)
踩(3)
分享到:
华为认证网络工程师 HCIE直播课视频教程