美文网首页
优化概要

优化概要

作者: 想太多的猫 | 来源:发表于2017-11-22 20:50 被阅读0次

    数据库的性能取决于很多因素,比如:表,查询,和配置。配置就是最简单的算法,用于调整程序逻辑,以便适应更多场景。优化主要从如下几个方面进行:

    • 硬件层面
    • 数据库层面
    • 可移植和性能的平衡

    硬件层面

    随着数据库的越来越忙碌,任何一个数据库应用最终会受到硬件的制约。一个DBA一定要评估是否可以通过调整应用或者重新配置服务器来避免瓶颈,是否需要更多硬件资源。系统瓶颈一般有如下几个来源:

    • 磁盘寻址
      磁盘上寻找一块数据的时间。在现在的磁盘中,平均时间通常小于10ms,所以我们可以寻找100次在1s内。这个时间对于新磁盘有小幅度提高,对单表的优化非常难。优化寻找数据的时间是将数据分布到多个磁盘。

    • 磁盘读写
      当磁盘到达正确的位置,我们需要读写数据。现在磁盘中,一个磁盘吞吐至少10-20MB/S。你可以通过并行读取多个磁盘。

    • CPU周期
      当数据在内存的时候,我们为了得到结果来处理数据。大量的大表是主要的因素。对于小表,完全不是问题。

    • 主存带宽
      当CPU需要更多数据,而不是命中CPU自带的缓存。主存带宽就是一个瓶颈,多数系统基本不会是这个瓶颈。

    数据库层面

    • 表结构的合理性。列的数据类型的合理性,一个表中列的合理性。比如:多更新数据应该设计多表(少列),分析大量数据则设计成少表(多列)。
    • 合理的索引。索引的数据结构伟B树,查询效率很高。而且Mysql的锁的机的粒度就是基于索引。
    • 对于行的格式设定。Mysql的行的设置模式有:COMPACT,REDUNDANT,DYNAMIC,COMPRESSED。引擎Innodb默认COMPACT。
    • 正确的锁策略。分为共享模式和排他模式,选用Innodb引擎性能更好。
    • 配置缓存合适的大小。具体就是配置InnoDB buffer pool合适的大小。

    可移植和性能的平衡

    编写高新能的SQL语句(Mysql 特殊SQL方言)和可移植的SQL语句需要进行取舍。

    相关文章

      网友评论

          本文标题:优化概要

          本文链接:https://www.haomeiwen.com/subject/xxynvxtx.html