开发者学堂课程【RDS MySQL 高效设计及性能调优 :RDS MySQL 高效设计及性能调优(一)】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1209/detail/18176
RDS MySQL 高效设计及性能调优
内容介绍:
一、什么是 RDS MySQL
二、 RDS MySQL 的架构及特性
三、 RDS MySQL 产品系列
四、 RDS MySQL 参数模板
五、 RDS MySQL 的实战场景
六、 RDS MySQL 开发规范和建议
七、 RDS MySQL 使用经验
本次分享来自金融 TAM 团队八大精品课程之一的 RDS MySQL 高效设计及性能调优。本次分享将从三大部分进行讲解:了解 RDS MySQL 、 RDS MySQL 开发规范和建议、 RDS MySQL 使用经验。首先来了解一下 RDS MySQL :将从什么是 RDS MySQL 及 RDS MySQL 的架构及特性,以及它的对应实战产品进行了解。
一、什么是 RDS MySQL
阿里云关系型数据库(Relational Database Service、简称 RDS)是一种稳定可靠,可弹性伸缩的在线数据库服务。提供了容灾、备份、恢复、监控、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。RDS MySQL 内核是阿里云深度定制的独立 MySQL 分支 AliSQL,AliSQL 除了社区版的所有功能外,还提供了类似于 MySQL 企业版的诸多功能,如企业级备份恢复、线程池等,并且 AliSQL 还提供兼容 Oracle 的能力,如 sequence 引擎等。
二、 RDS MySQL 的架构及特性
1.将通过这个图这个架构图进行讲解:
首先最擅长的 Connectors,提供了各个应用程序对连接数据库的接口,例如 JDBC ODBC 等;下面是 MySQL Server,从左往右开始讲解:Management 的 Service &Utilities 这一块是系统管理和服务控制相关工具,例如Recovery 复制是同步复制等;Connection Managment 这一块,主要和用户访问所涉及到的像用户登录、线程池管理、线程池处理,以及连接处的限制,还有进程、内存等;下面这块是的 RDS MySQL 的核心,主要用于分析 SQL ,以及 SQL 如何在的底层数据库进行执行:SQL Interface 主要接收应用端传过来的 SQL ,并将 SQL 执行的结果反馈给应用端;拿到一条 SQL 之后,它会进入到语法解析器,进行语法解析其是否符合的语法规范等;之后会进入到优化器,优化器将所接收到的语法述里面的内容进行转化,将其转化成可执行的执行计划,然后传到底层获取数据。下面一块是与缓存相关的机制管理。在核心区域以之下是存储引擎,插件式存储引擎,是 MySQL Server 比较有特点的一个地方:它能够支持不同的数据以及不同的存储要求。像 InnoDB 存储引擎目前是使用最广,而且是目前来说使用最好的一款存储引擎,同时也是 RDS MySQL 的默认存储引擎,此外本次的分享也都是基于 InnnoDB 进行分享。
X-Engine 是阿里自研的一款基于 OLTP 的存储引擎,如果大家对这块需要更多了解的话,可以在阿里云官网进一步了解。在插件式存储引擎之下,是文件系统,例如的一些数据的事件日志等这些的写入、读写的存储,都在这块进行写入。下面这部分更贴近系统层、操作系统。这就是 MySQL Server 的内核架构。
2. RDS MySQL 具有的特性:
(1) Statement ConcurrencyContrl 可以控制 MySQL 的并发,当遇到数据负载 CPU较高,是由某条 MySQL 引起并发数过多,导致整个数据库负载增加时,可以用这个功能去匹配这条 SQL 的关键字,将这条 SQL 进行并发控制,把它限制在一条或两条等。这个功能就可以在应急场景上使用。
(2) Statement Outline 可以指定执行某些搜索的执行计划和回收。比如说要删除一个表时,出现了误删除,可以从回收站进行回收。
这些功能特性我就不一一介绍,如果大家对于Ali SQL 的特性需要了解的话,可以在阿里官网进行了解。