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.数据架构(读写分离、分库分表等)

    性能调优的基本方法论


    理想的数据库优化顺序

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

  • 相关阅读:
    CSS3 target伪类简介
    不用position,让div垂直居中
    css3 在线编辑工具 连兼容都写好了
    a标签伪类的顺序
    oncopy和onpaste
    【leetcode】1523. Count Odd Numbers in an Interval Range
    【leetcode】1518. Water Bottles
    【leetcode】1514. Path with Maximum Probability
    【leetcode】1513. Number of Substrings With Only 1s
    【leetcode】1512. Number of Good Pairs
  • 原文地址:https://www.cnblogs.com/dinglang/p/6113186.html
Copyright © 2011-2022 走看看