65-MySQL其它调优策略-步骤

一、数据库调优措施

1.1、调优的目标

  • 吞吐量更大:尽可能 节省系统资源 ,以便系统可以提供更大负荷的服务
  • 响应速度更快:合理的结构设计参数调整,以提高用户操作 响应的速度
  • 减少系统的瓶颈,提高MySQL数据库整体的性能

1.2、定位问题

1.2.1、用户的反馈(主要)

用户反馈

1.2.2、日志分析(主要)

通过查看数据库日志操作系统日志等方式找出异常情况,通过它们来定位遇到的问题

1.2.3、服务器资源使用监控

通过监控服务器的CPU、内存、I/O等使用情况,可以实时了解服务器的性能使用,与历史情况进行对比

1.2.4、数据库内部状况监控

在数据库的监控中,活动会话(Active Session)监控是一个重要的指标。通过它,可以清楚地了解数据库当前是否处于非常繁忙的状态,是否存在 SQL 堆积

1.2.5、其它

除了活动会话监控以外,我们也可以对 事务锁等待 等进行监控,这些都可以帮助我们对数据库的运行状态有更全面的认识

1.3、调优的维度和步骤

1.3.1、选择合适的 DBMS

DBMS 的选择关系到后面的整个设计过程,所以第一步就是要选择合适的 DBMS

  • 如果对于事务性处理以及安全性要求高的话,可以选择商业的数据库产品如SQL Server、Oracle
  • NoSQL 数据库:键值型数据库、文档型数据库、搜索引擎、列式存储、图形数据库

1.3.2、优化表设计

数据表的结构设计很基础,也很关键。好的表结构可以在业务发展和用户量增加的情况下依然发货作用,不好的表结构设计会让数据表变得非常臃肿,查询效率也会降低

  • 表结构要尽量遵循三范式的原则。这样可以让数据结构更加清晰规范,减少冗余字段,同时也减少了更新、插入和删除数据时等异常情况的发生
  • 如果查询应用比较多,尤其是需要进行多表联查的时候,可以采用反范式进行优化。反范式采用空间换时间的方式,通过增加冗余字段提高查询的效率
  • 表字段的数据类型选择,关系到了查询效率的高低以及存储空间的大小。一般来说,如果字段可以采用数值类型就不要采用字符类型;字符长度要尽可能设计得短一些。针对字符类型来说,当确定字符长度固定时,就可以采用 CHAR;当长度不固定时,通常采用VARCHAR类型

1.3.3、优化逻辑查询

SQL查询优化,可以分为逻辑查询优化物理查询优化

  • 逻辑查询优化 就是通过改变 SQL 语句的内容让 SQL 执行效率更高效,采用的方式是对 SQL 语句进行等价交换,对查询进行重写
  • SQL 的查询重写包括了子查询优化等价谓词重写视图重写条件简化连接消除嵌套连接消除等

1.3.4、优化物理查询

物理查询优化是在确定了逻辑查询优化之后,采用物理优化技术(如索引等),通过计算代价模型对各种可能的访问路径进行估算,从而找到执行方式中代价最小的作为执行计划。

  • 单表扫描:对于单表扫描来说,我们可以全表扫描所有的数据,也可以局部扫描
  • 两张表的连接:常用的连接方式包括了嵌套循环连接HASH连接合并连接
  • 多张表的连接:多张数据表进行连接的时候,顺序很重要,因为不同的连接路径查询的效率不同,搜索空间也会不同。我们在进行多表连接的时候,搜索空间可能会达到很高的数据级,巨大的搜索空间显然会占用更多的资源,因为我们需要通过调整连接顺序,将搜索空间调整在一个可接受的范围内

1.3.5、使用 Redis 或 Memcached 作为缓存

通常对于查询响应要求高的场景(响应时间段、吞吐量大),可以考虑内存数据库。传统的 RDBMS 都是将数据存储在磁盘上,而内存数据库则存放在内存中,查询起来要快的多。

1.3.6、库级优先

库级优先是站在数据库的维度上进行的优化策略,如控制一个库中的数据表数量。另外,单一的数据库总会遇到各种限制,不如取长补短,利用外援的方式。通过主从架构优化我们的读写策略,通过对数据库进行垂直或者水平切分,突破单一数据库或数据表的访问限制,提升查询的性能

1.3.6.1、读写分离

如果读和写的业务量都很大,并且它们都在同一个数据库服务器中进行操作,那么数据库的性能就会出现瓶颈。这时为了提升系统的性能,优化用户体验,可以采用读写分离的方式降低主数据的负载,如用主数据库(master)完成写操作,用从数据库(slave)完成读操作

读写分离.png

高可用读写分离.png

1.3.6.2、数据分片

数据库分库分表。当数据量级达到千万级以上时,有时候需要把一个数据库切成多份,放到不同的数据库服务器上,减少对单一数据库服务器的访问压力。MySQL自带了分区分表功能,也可以考虑自己做垂直拆分(分库)、水平拆分(分表)、垂直+水平拆分(分库分表)

  • 分拆在提升数据库性能的同时,也会增加维护成本和使用成本


    image.png

    image.png

你可能感兴趣的:(65-MySQL其它调优策略-步骤)