【mysql】mysq优化全方面分析

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 【mysql】mysq优化全方面分析

良好的逻辑设计和物理设计是高性能的基石,schema的设计既要注意细节,也要关注全局。很多问题在开发的时候并没有时间考虑的那么完全,后期测试就要进行不断的优化。我了解的mysql优化一共有查询优化(主要是索引优化)、数据类型优化、数据库结构优化、mysql服务器优化

SQL调优是一个反复的过程,是一步一步的将SQL语句的性能提升到预期的目标。

它是对一个已经实施完成了的应用的问题的解决,相反的,应用设计则是在实施之前,就应该已经设定好了安全和性能的目标。

目标

了解什么是优化

掌握优化查询的方法

掌握优化数据库结构的方法

掌握优化MySQL服务器的方法

查询优化

查询优化的思路分两种

第一种就是线上生产环境,我们使用的是druid监控页面查询sql执行比较慢的筛选出来

第二种就是在生产和测试的环境下,使用explian执行计划,根据分析参数来判断哪里出现了问题

索引优化全解:https://blog.csdn.net/yujing1314/article/details/106756289

数据类型优化

数据类型优化主要是在建表阶段就应该做好,因为生产环境下再去修改数据类型代价有点大

数据类型优化:https://blog.csdn.net/yujing1314/article/details/107469269

表优化

范式和反范式

范式化就是满足第一第二第三范式的表设计

反范式化指的是通过增加冗余或重复的数据来提高数据库的读性能。

优化服务器硬件

服务器性能可以在生产环境下进行优化

服务器的硬件性能决定了Mysql数据库的性能,主要有下面几个方面

1.配置较大的内存,提高内存是优化MySQL数据库性能的方法之一,内存的IO非常快,可以增加系统缓存区容量

2.配置高速磁盘SSD等

3.合理分配磁盘IO,减少资源竞争,提高并发操作的能力

4.配置多核处理器,Mysql是多线程数据库,多处理器可以提高执行多个线程的能力

MySQL配置参数调优

max_connections :MySQL的最大连接数,如果服务器的并发连接请求量较大,建议调高此值,以增加并行连接数量

wait_timeout和interative_timeout: wait_timeout:指的是MySQL再关闭一个非交互的连接之前所需要等待的秒数。

interative_timeout:指的是关闭一个交互的连接之前所需要等待的秒数。

sort_buffer_size:每个需要排序的线程分配该大小的一个缓冲区。增加这值加速ORDER BY 或 GROUP BY操作

key_buffer_size:表示索引缓冲区的大小,索引缓冲区所有的线程共享,增加索引缓冲区可以得到更好

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
27天前
|
SQL 关系型数据库 MySQL
MySQL慢查询优化、索引优化、以及表等优化详解
本文详细介绍了MySQL优化方案,包括索引优化、SQL慢查询优化和数据库表优化,帮助提升数据库性能。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
MySQL慢查询优化、索引优化、以及表等优化详解
|
1月前
|
缓存 监控 关系型数据库
如何优化MySQL查询速度?
如何优化MySQL查询速度?【10月更文挑战第31天】
70 3
|
1月前
|
缓存 关系型数据库 MySQL
如何优化 MySQL 数据库的性能?
【10月更文挑战第28天】
72 1
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:百万级数据统计优化实践
【10月更文挑战第21天】 在处理大规模数据集时,传统的单体数据库解决方案往往力不从心。MySQL和Redis的组合提供了一种高效的解决方案,通过将数据库操作与高速缓存相结合,可以显著提升数据处理的性能。本文将分享一次实际的优化案例,探讨如何利用MySQL和Redis共同实现百万级数据统计的优化。
94 9
|
1月前
|
监控 关系型数据库 MySQL
数据库优化:MySQL索引策略与查询性能调优实战
【10月更文挑战第27天】本文深入探讨了MySQL的索引策略和查询性能调优技巧。通过介绍B-Tree索引、哈希索引和全文索引等不同类型,以及如何创建和维护索引,结合实战案例分析查询执行计划,帮助读者掌握提升查询性能的方法。定期优化索引和调整查询语句是提高数据库性能的关键。
193 1
|
2月前
|
NoSQL 关系型数据库 MySQL
MySQL与Redis协同作战:优化百万数据查询的实战经验
【10月更文挑战第13天】 在处理大规模数据集时,传统的关系型数据库如MySQL可能会遇到性能瓶颈。为了提升数据处理的效率,我们可以结合使用MySQL和Redis,利用两者的优势来优化数据查询。本文将分享一次实战经验,探讨如何通过MySQL与Redis的协同工作来优化百万级数据统计。
67 5
|
2月前
|
存储 缓存 关系型数据库
MySQL事务日志-Redo Log工作原理分析
事务的隔离性和原子性分别通过锁和事务日志实现,而持久性则依赖于事务日志中的`Redo Log`。在MySQL中,`Redo Log`确保已提交事务的数据能持久保存,即使系统崩溃也能通过重做日志恢复数据。其工作原理是记录数据在内存中的更改,待事务提交时写入磁盘。此外,`Redo Log`采用简单的物理日志格式和高效的顺序IO,确保快速提交。通过不同的落盘策略,可在性能和安全性之间做出权衡。
1674 14
|
2月前
|
存储 关系型数据库 MySQL
基于案例分析 MySQL 权限认证中的具体优先原则
【10月更文挑战第26天】本文通过具体案例分析了MySQL权限认证中的优先原则,包括全局权限、数据库级别权限和表级别权限的设置与优先级。全局权限优先于数据库级别权限,后者又优先于表级别权限。在权限冲突时,更严格的权限将被优先执行,确保数据库的安全性与资源合理分配。
|
2月前
|
存储 关系型数据库 MySQL
优化 MySQL 的锁机制以提高并发性能
【10月更文挑战第16天】优化 MySQL 锁机制需要综合考虑多个因素,根据具体的应用场景和需求进行针对性的调整。通过不断地优化和改进,可以提高数据库的并发性能,提升系统的整体效率。
101 1
|
2月前
|
缓存 关系型数据库 MySQL
一文彻底弄懂MySQL优化之深度分页
【10月更文挑战第24天】本文深入探讨了 MySQL 深度分页的原理、常见问题及优化策略。首先解释了深度分页的概念及其带来的性能和资源问题。接着介绍了基于偏移量(OFFSET)和限制(LIMIT)以及基于游标的分页方法,并分析了它们的优缺点。最后,提出了多种优化策略,包括合理创建索引、优化查询语句和使用数据缓存,帮助提升分页查询的性能和系统稳定性。
159 1