MySQL

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

2022-11-13  本文已影响0人  紫荆秋雪_文

一、数据库调优措施

1.1、调优的目标

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

1.3.2、优化表设计

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

1.3.3、优化逻辑查询

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

1.3.4、优化物理查询

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

1.3.5、使用 Redis 或 Memcached 作为缓存

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

1.3.6、库级优先

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

1.3.6.1、读写分离

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

读写分离.png
高可用读写分离.png

1.3.6.2、数据分片

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

上一篇 下一篇

猜你喜欢

热点阅读