常用 MYSQL 调优策略实战讲解(二)|学习笔记

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 快速学习常用 MYSQL 调优策略实战讲解

开发者学堂课程【MySQL 企业常见架构与调优经验分享:常用 MYSQL 调优策略实战讲解】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/383/detail/4813


常用 MYSQL 调优策略实战讲解(二)


内容介绍:

一、内核参数优化

二、MYSQL 参数优化建议


一、内核参数优化

1.内核参数通过内存和文件系统这两个方面进行优化。首先内存,重点关注vm.swappiness 参数,这个参数是对使用 swap 的几率做了个百分比的判断,比如这个值越小,对 swap 的使用率就会越低。对于 MYSQL 服务器来说要尽量去利用 vm.swappiness 降低  swap 使用率。

RHEL7/centos7 以上则慎重设置为 o ,可能发生 OOM 。

2. 调整 vm.dirty_background_ratio、vm.dirty_ratio 内核参数,用户在提交完成之后,数据不会马上修磁盘而是放到内存里边,这部分数据我们称为脏数据, vm.dirty_background_ratio 指定这个脏数据在什么情况下,把数据刷到硬盘的一个最大的占用百分。

比如设为10%,当脏数据量达到物理内存的10%之后,必须要把脏数据刷的硬盘上去。vm.dirty_ratio 是一个标准阈值就是,当脏数据量达到配置的标准,就会触发相关的写操作,会把脏数据写到硬盘上去。

调整 vm.dirty_background_ratio、vm.dirty_ratio 内核参数以确保能持续将脏数据刷新到磁盘,避免瞬间 l/o 写 产生等待。

3. 调整 net.ipv4.tcp_tw_recycle、net.ipv4.tcp_tw_reuse 都设置为1,减少 TIME_WAIT,提高 TCP 效率。

问题解答

1)通常情况下都是先做 raid1 ,然后再做 raid10 ;

(2)如果在频繁读写的时候会对硬盘有很大的占用率,这样然后降低?

答:占用率高是正常情况,不需要降低,因为充分利用了 CPU 的资源;判断它是否正常是看它运行是否顺畅。

3)有些数据开始读写困难,直接去 MYSQL 读,导致阻塞困难。MYSQL 是用于大数据的读写。

 

二、MYSQL 参数优化建议

1.建议设置 default-storag-engine=lnnoDB ,现在百分之九十九的业务环境 InnonDB 都是可以满足的,从这个运维的角度来说如果使用会在后续的维护中有很多好处。

在故障恢复、份等等各个方面,都是有很大的好处的,所以强烈建议不要再使用 MyISM 引擎。

2.调整 innodb_buffer_pool_size 的大小,如果是单实例且绝大多数是 lnnoDB 引擎表的话,可考虑设置为物理内存的50%-70%左右(设置越大,内存越高,读写性能也会越好)。

因为这个值原理上来说是设置的越大,它能缓存数据越多,缓存的数据越多 MySQL 读写性能可能会越高,尽量把这个空闲的物理内存都交给它去用。

3、设置 innodb_file_per_table=1,InnoDB 可以使用独立的表空间也可以使用共享表空间,而使用共享表空间没有什么好处,所以可以通过这个参数配置使用独立表空间。

4. 调整 innodb_data_file_path=ibdata1:1G:autoextend,不要默认的10M,在高并发场景下,性能会有很大提升。

默认情况下,这个配置的值是10MB大小,如果我们的业务不是很大,或者对数据库写操作不是很频繁也是足够的,但是如果出现大一点的情况就会是不够的。虽然它有后端会自动扩展基础,但自动扩展是会耗费更多的资源,所以可以在刚开始的时候将数据文件的值设置大一点。

5. 设置 innodb_log_file_size=256,

innodb_log_files_in_group=2,基本可以满足大多数应用场景。

6. 调整max_connection (最大连接数)、

max_connection_error (最大错误数)设置,根据业务量大小进行设置。如果业务量是比较大的话,设置值大一点,尽量能够满足业务需求。

7. open_files_limit、innodb_open_files、table_open_cache、table_definltion_cache 可以设置大约为max_connection的10倍左右大小。

8. Key_buffer_size 作用很小建议调小,32M左右即可,另外建议关闭 query cache(对提高性能方面没有什么帮助)。

9.Mp_table_size和max_heap_table_size 设置不要过大,另外 sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_ size 等设置也不要过大。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
19天前
|
SQL 存储 关系型数据库
不允许你不知道的 MySQL 优化实战(三)
不允许你不知道的 MySQL 优化实战(三)
31 1
|
11天前
|
SQL 关系型数据库 数据库
阿里云数据库 RDS SQL Server版实战【性能优化实践、优点探析】
本文探讨了Amazon RDS SQL Server版在云数据库中的优势,包括高可用性、可扩展性、管理便捷、安全性和成本效益。通过多可用区部署和自动备份,RDS确保数据安全和持久性,并支持自动扩展以适应流量波动。可视化管理界面简化了监控和操作,而数据加密和访问控制等功能保障了安全性。此外,弹性计费模式降低了运维成本。实战应用显示,RDS SQL Server版能有效助力企业在促销高峰期稳定系统并保障数据安全。阿里云的RDS SQL Server版还提供了弹性伸缩、自动备份恢复、安全性和高可用性功能,进一步优化性能和成本控制,并与AWS生态系统无缝集成,支持多种开发语言和框架。
57 2
|
12天前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
简简单单 My SQL 学习笔记(3)——连接和嵌套查询
|
12天前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
简简单单 My SQL 学习笔记(2)——分组和简单数据的查询
|
12天前
|
SQL 关系型数据库 MySQL
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
简简单单 My SQL 学习笔记(1)——表中数据的整删改查
|
19天前
|
缓存 监控 关系型数据库
2核4G 配置的MySQL 5.6如何调优为最佳qps,tps
要提高具有2核4G配置的MySQL 5.6的QPS(每秒查询率)和TPS(每秒事务数),可以通过以下方法进行调优: 1. 优化配置文件(my.cnf): 在MySQL的配置文件中,可以调整以下参数以提高性能: ``` [mysqld] innodb_buffer_pool_size = 1.5G # 设置InnoDB缓冲池大小,推荐值为服务器总内存的50%-80% max_connections = 500 # 设置最大连接数,根据实际需求进行调整 query_cache_size = 128M # 设置查询缓存大小,推荐值
|
19天前
|
SQL canal 运维
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
MySQL高可用架构探秘:主从复制剖析、切换策略、延迟优化与架构选型
|
19天前
|
SQL 存储 关系型数据库
5分钟搞懂MySQL半连接优化⭐️多种半连接的优化策略
5分钟搞懂MySQL半连接优化⭐️多种半连接的优化策略
|
19天前
|
缓存 关系型数据库 MySQL
MySQL数据库性能优化实战
【4月更文挑战第30天】本文探讨了MySQL性能优化实战技巧,包括硬件与配置优化(如使用SSD、增加内存和调整配置参数)、索引优化(创建合适索引、使用复合索引及定期维护)、查询优化(避免全表扫描、减少JOIN和使用LIMIT)、分区与分片(表分区和数据库分片),以及使用缓存、定期清理数据库和监控诊断。通过这些方法,可以提升数据库性能和响应速度。
|
19天前
|
关系型数据库 MySQL 测试技术
【专栏】PostgreSQL数据库向MySQL迁移的过程、挑战及策略
【4月更文挑战第29天】本文探讨了PostgreSQL数据库向MySQL迁移的过程、挑战及策略。迁移步骤包括评估规划、数据导出与转换、创建MySQL数据库、数据导入。挑战包括数据类型不匹配、函数和语法差异、数据完整性和性能问题。应对策略涉及数据类型映射、代码调整、数据校验和性能优化。迁移后需进行数据验证、性能测试和业务验证,确保顺利过渡。在数字化时代,掌握数据库迁移技能对技术人员至关重要。