zoukankan      html  css  js  c++  java
  • 数据库性能优化的误区

    常见的数据库系统优化中的一些观点: 

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

    “只要系统参数调整了,性能就能提高。系统优化应该调整那些参数…” 
    这种观点往往出自于一些偏运维和应用层的DBA,迷恋参数配置来调优。 
    调整系统参数是非常重要的,但不一定能解决性能问题,否则就不会有去IOE了,问题可能性最大的还是应用设计和开发问题。

    同理,很多运维人员和系统架构师比较迷恋“Linux系统调优”。认为的对“文件句柄数、CPU/内存/磁盘子系统…”各种参数做了优化,以为这就能提升整个应用系统的性能。其实不然。有些场景下,针对业务特点和应用类型做操作系统调优是能取到立竿见影的效果,但是大多数时候往往提升并不明显。所以最关键的还是找出瓶颈所在,对症下药。

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

    “你们必须要做读写分离,必须要弄分库分表。”

    这种通常是“吹水”的人常在外面忽悠的,这些技术手段都被说烂了。

    反问一句,了解数据量吗?知道实际压力和瓶颈吗?了解读写比如何吗?怎么拆?拆了之后怎么玩? 

    上述那些观点,都是比较片面的,还是需要结合实际情况辩证分析。

    常见影响数据库性能的因素

    1.业务需求和技术选型 

    2.应用系统的开发及架构 

    3.数据库自身 

    3.1表结构的设计 

    3.2查询语句 

    3.3索引设计 

    3.4Mysql服务(安装、配置等) 

    3.5操作系统调优 

    3.6硬件升级(SSD、更强的CPU、更大的内存) 

    4.数据架构(读写分离、分库分表等)

    性能调优的基本方法论


    理想的数据库优化顺序

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

  • 相关阅读:
    Leetcode Reverse Words in a String
    topcoder SRM 619 DIV2 GoodCompanyDivTwo
    topcoder SRM 618 DIV2 MovingRooksDiv2
    topcoder SRM 618 DIV2 WritingWords
    topcoder SRM 618 DIV2 LongWordsDiv2
    Zepto Code Rush 2014 A. Feed with Candy
    Zepto Code Rush 2014 B
    Codeforces Round #245 (Div. 2) B
    Codeforces Round #245 (Div. 2) A
    Codeforces Round #247 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/dinglang/p/6113186.html
Copyright © 2011-2022 走看看