• 数据库性能优化的误区



     

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

    “系统性能出现问题进行优化,一定要深入了解数据库内部参数、等待事件、Latch、缓冲池、trace文件、查询/优化引擎等底层细节。” 

    这种观点往往出自数据库“高手”,这部分人以了解数据库底层实现细节而感到非常骄傲。但是从优化角度讲数据库的等待事件、Latch等指标高等等都只是问题的表象,懂得底层细节和内幕固然是好。但是解决问题的关键往往是在应用层进行优化

    “只要系统参数调整了,性能就能提高。系统优化应该调整那些参数…” 

    这种观点往往出自于一些偏运维和应用层的DBA,迷恋参数配置来调优。

    调整系统参数是非常重要的,但不一定能解决性能问题,否则就不会有去IOE了,问题可能性最大的还是应用设计和开发问题。

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

    “系统性能问题需要从架构上解决,与应用开发关系不大。” 

    系统性能与各个层面都有关,整体架构很重要,但应用开发也是非常重要的一环。

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

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

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

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

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

    1、业务需求和技术选型 

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

    3、数据库自身

    3.1、表结构的设计

    3.2、查询语句

    3.3、索引设计 

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

    3.5、操作系统调优

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

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

    性能调优的基本方法论:


     

    理想的数据库优化顺序:


     

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

    扩展阅读

    数据库设计杂谈

    Java 异常处理的误区和经验总结

    深入 Nginx:我们是如何为性能和规模做设计的

    MySQL大数据量分页查询方法及其优化

    Twitter工程师谈JVM调优

    作者:丁码农

    来源:https://www.cnblogs.com/dinglang/p/6113186.html

  • 相关阅读:
    非阻塞式线程安全列表-ConcurrentLinkedDeque
    计数器
    Linux 查看服务器内存使用情况
    Oracle to_date, to_timestamp
    Hibernate session.flush() 使用
    阿里规约认证(题库附答案)
    多态性
    Java数据类型
    String类特点分析
    数组的定义
  • 原文地址:https://www.cnblogs.com/javafirst0/p/10812009.html
Copyright © 2020-2023  润新知