MySQL 性能优化的原则和方向|学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习 MySQL 性能优化的原则和方向

开发者学堂课程【MySQL 实操课程:MySQL 性能优化的原则和方向】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/717/detail/12828


MySQL 性能优化的原则和方向

 

内容介绍

一、前言

二、优化原则

三、优化方向

 

一、前言

这节课进行分享 MySQL 实操课程系列的第十小节 MySQL 的优化,MySQL 包含内容主要为以下四个小节。第一部分会进行分享,MySQL 性能优化的原则和方向,这一部分主要从性能优化的整个角度去做一个全面的讲解,包含怎样去对硬件进行升级优化,对操作系统和配置参数怎样进行优化,以及灾数据库本身的层面,比如说在数据库表的设计层面,以及 SQL 语句的优化等等。第二部分会讲解慢查询定位具体 SQL 语句,对于开发人员接触最多的就是 SQL 语句,很多的数据库运行效率性能之所以很慢,很大一部分原因都是没有合理高效的使用 SQL 语句,没有按照 SQL 语句的标准规范去缩写,所以最终会导致慢查询影响 SQL 语句性能。第三部分会重点分享 SQL 优化,就是找到慢查询后怎样进行优化,怎样去分析 SQL 执行计划,在索引的这一小节也有提过。第四部分会分享智能优化,智能优化是指利用第三方的平台或者工具进行一键诊断,这一部分会进行讲解阿里云的平台,借助阿里云的 rds 云数据库提供的工具能够快速的进行诊断与优化。

 

二、优化原则

使用 MySQL 的过程中要注意的几个点

1、不要把它当做文件系统,比如将图片、附件之类的都放在 MySQL 数据库中,比如说一些历史的遗留系统,特别是早期的一些应用系统,经常会把一些图片以及附件都以字段类型存到数据库里面,那么近几年企业对于数据库进行管理,进行建设数据中台的时候,首先第一步就要把数据进行一个分类的存储,分类存储最直接的说法就是对数据库进行一个瘦身,把数据库中现有的数据,根据他的类型进行分类并且找到最适合它的分类进行存储,其中一部分就是把文件,图片,附件之类的作为一个单独的文件系统,存到文件系统中,不是存到数据库,因为存到数据库中,一方面这样很容易导致表空间变得很庞大磁盘 I/O 读写性能差。另一方面在进行检索的时候,会发现他的效率变得很低。

2、不要使用 MySQL 进行大量复杂的运算; 因为 MySQL 就是一个数据库,把它用来进行存储就可以。

3、不要把它当做全文检索工具,而是简单把它当做一个可以处理并发事务,保证数据致性的数据库就可以了

 

三、优化方向

这里在提到 MySQL 要注意的几个点后,而真正去优化的时候,可能会涉及到以下几个方向

1、系统的优化

第一个就是系统的优化,系统优化主要是一方面针对的是硬件,硬件这方面一般会使用更好更快的硬盘,还有就是内存足够大,并且 CPU 比较多是多核 CPU,然后使用专业的存储器,那么通过这样一些更好的硬件,就能够提高存储的效率和计算的效率,并且通过大量的内存,可以让服务器进行大量的数据运算和存储,从而很大程度提高 MySQL 的性能。
系统优化的另一方面就是提到的合理架构,比如说 MySQL 访问频繁,就可以考虑对他进行读写分离,可以通过MaxScale组成的架构进行读写分离,对于读可以走slave 存库的只读库,对于写可以走 master,这就是读写分离的架构。还有一些像数据库的分表,将一个数据拆分为多个不同的表,这样的话在检索的时候能减少搜索的范围,查询数据级减小对于检索效率能有很大的提升,还可以通过一些缓存服务器,在数据库和应用之间增加一个缓存服务器,就能把一些查询比较频繁的数据缓存到缓存服务器,而应用则只需要去缓存服务器进行取数据,所以 MySQL 中针对的是查询不是很频繁的数据,或者没办法直接放到缓存区的数据,所以这个是针对系统优化的层面。那么针对服务优化的层面,可以通过配置合理的 MySQL 服务器,这里在讲购置 MySQL 服务器的时候,基于连接事务处理或者连接分析处理,比如说对于一些事务性处理,需要使用 innodb 存储引擎,对于分析处理要使用myisam 存储引擎,那么针对不同的存储引擎,可以进行不同的参数个性化配置,甚至可以根据不同的存储引擎进行采购数据库服务器,都是可以进行的操作。然后就是可以针对 MySQL 的可配置文件,比如 my.cnf 文件中有很多的参数进行一些优化,比如说像数据库的连接数 max_connections,这里面用到的最大连接数可以进行最佳的优化,能够提高同时处理数据库的连接,从而提高并发效率和并发的性能,还可以进行设置查询访问区的大小,这个参数也是可以配置的,可以根据当前查询的需求,以及内存的使用情况,可以去设置一个合理的查询缓存,查询缓存在前面讲过可以去大幅的降低交互,不需要频繁的从存储引擎中进行交互,然后还可以设置这些现成的缓存区为合理的大小值等等,这都是通过参数优化的手段,这个是站在服务优化的层面。
2、应用的优化

个讲的是应用的优化,应用的优化主要是设计合理的数据表结构,包含对一些关键的数据进行适当的冗余,减少复杂的查询,把数据用于后提高效率,相当于用空间换时间,还有另一种优化方式就是对数据表建立有效的数据索引,前面讲解了对于索引的合理使用,包括高效的设计索引原则,那么在应用数据库 MySQL 进行优化的时候可以给表建立索引,根据查询的场景,找到最合理的索引策略。

3、数据的查询
个讲解的是数据的查询,数据查询主要讲解的是怎样去编写简洁高效的 SQL 语句,这里需要了解 SQL 语句本身的特点,主要是为了提高 MySQL 检索的效率,要了解 SQL 语句对于执行计划是怎样影响的是关键点。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
132 6
|
14天前
|
存储 缓存 负载均衡
mysql的性能优化
在数据库设计中,应选择合适的存储引擎(如MyISAM或InnoDB)、字段类型(如char、varchar、tinyint),并遵循范式(1NF、2NF、3NF)。功能上,可以通过索引优化、缓存和分库分表来提升性能。架构上,采用主从复制、读写分离和负载均衡可进一步提高系统稳定性和扩展性。
34 9
|
1月前
|
SQL 关系型数据库 MySQL
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
MySQL中用于数据检索的`fetchone()`, `fetchmany()`, `fetchall()`函数的功能、SQL语句示例和应用场景。
59 3
Mysql学习笔记(三):fetchone(), fetchmany(), fetchall()详细总结
|
1月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
71 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
架构师 关系型数据库 MySQL
MySQL最左前缀优化原则:深入解析与实战应用
【10月更文挑战第12天】在数据库架构设计与优化中,索引的使用是提升查询性能的关键手段之一。其中,MySQL的最左前缀优化原则(Leftmost Prefix Principle)是复合索引(Composite Index)应用中的核心策略。作为资深架构师,深入理解并掌握这一原则,对于平衡数据库性能与维护成本至关重要。本文将详细解读最左前缀优化原则的功能特点、业务场景、优缺点、底层原理,并通过Java示例展示其实现方式。
88 1
|
2月前
|
存储 SQL 关系型数据库
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
MySQL调优主要分为三个步骤:监控报警、排查慢SQL、MySQL调优。 排查慢SQL:开启慢查询日志 、找出最慢的几条SQL、分析查询计划 。 MySQL调优: 基础优化:缓存优化、硬件优化、参数优化、定期清理垃圾、使用合适的存储引擎、读写分离、分库分表; 表设计优化:数据类型优化、冷热数据分表等。 索引优化:考虑索引失效的11个场景、遵循索引设计原则、连接查询优化、排序优化、深分页查询优化、覆盖索引、索引下推、用普通索引等。 SQL优化。
558 15
【MySQL调优】如何进行MySQL调优?从参数、数据建模、索引、SQL语句等方向,三万字详细解读MySQL的性能优化方案(2024版)
|
1月前
|
关系型数据库 MySQL 数据库
Mysql学习笔记(四):Python与Mysql交互--实现增删改查
如何使用Python与MySQL数据库进行交互,实现增删改查等基本操作的教程。
67 1
|
1月前
|
存储 关系型数据库 MySQL
MySQL性能优化实践指南
【10月更文挑战第16天】MySQL性能优化实践指南
51 0
|
1月前
|
存储 关系型数据库 MySQL
MySQL性能优化指南
【10月更文挑战第16天】MySQL性能优化指南
43 0
|
2月前
|
存储 关系型数据库 MySQL
mysql-性能优化(一)
mysql-性能优化(一)
下一篇
无影云桌面