MySQL的组成

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: SQL运行机制概述

image.png

建立连接

建立连接(Connectors&Connection Pool),通过客户端/服务器通信协议与MySQL建立连接。MySQL客户端与服务端的通信方式是“半双工”。对于每一个MySQL的连接,时刻都有一个线程状态来标识这个连接正在做什么。

通讯机制:

  1. 全双工:能同时发送和接收数据,例如平时打电话
  2. 半双工:指某一时刻,要么发送数据,要么接收数据,例如对讲机
  3. 单工:只能发送数据或者只能接收数据

线程状态:

show processlist; //查看用户正在运行的线程状态,root用户查看所有的

  • id:线程id,可以使用kill xx;
  • user:启动这个线程的用户
  • host:发送这个请求的客户端地址
  • db:当前命令在那个库执行
  • command:该线程正在的操作命令
  • Time:表示该线程处于当前状态的时间,单位是秒
  • State:线程状态
  • Info:一般记录线程执行的语句,默认显示前100个字符

查询缓存

查询缓存(Cache&Buffer),这是MySQL的一个可优化查询的地方,如果开启了查询缓存目在查询缓存过程中查询到完全相同的SQL语句,则将查询结果直接返回给客户端;如果没有开启查询缓存或者没有查询到完全相同的SQL语句则会由解析器进行语法语义解析,并生成"解析树”。

  • 缓存Select查询的结果和SQL语句
  • 执行Select查询时,先查询缓存,判断是否存在可用的记录集,要求是否完全相同(包括参数值),这样才会匹配缓存

解析器

查询优化器(Optimizer)根据'"解析树"生成最优的执行计划。MySQL使用很多优化策略生成最优的执行计划,可以分为两类:静态优化(编译时优化)、动态优化(运行时优化)。

查询优化器

查询优化器(Optimizer)根据解析树"生成最优的执行计划。MySQL使用很多优化策略生成最优的执行计划,可以分为两类:静态优化(编译时优化)、动态优化(运行时优化)。

查询执行引擎

查询执行引擎负责执行SQL语句,此时查询执行引擎会根据SQL语句中表的存储引擎类型,以及对应的AP接口与底层存储引擎缓存或者物理文件的交互,得到查询结果并返回给客户端。若开启用查询缓存,这时会将SQL语句和结果完整地保存到查询援存(Cache&Buffer)中,以后若有相同的SQL语句执行则直接返回结果。

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11天前
|
存储 关系型数据库 MySQL
深入理解mysql
深入理解mysql
33 1
|
3月前
|
关系型数据库 MySQL Java
MySQL的问题
MySQL的问题
|
3月前
|
前端开发 关系型数据库 MySQL
(3)mysql怎么这么难
(3)mysql怎么这么难
27 0
|
5月前
|
关系型数据库 MySQL 数据安全/隐私保护
Mysql
Mysql
29 0
|
6月前
|
存储 缓存 关系型数据库
mysql总结(下)
mysql总结
24 0
|
10月前
|
存储 缓存 关系型数据库
mysql
mysql
62 2
|
SQL 关系型数据库 MySQL
MySQL(八)
MySQL(八),一起来学习吧。
MySQL(八)
|
存储 Oracle 关系型数据库
MySQL(一)
MySQL(一),一起来学习吧。
MySQL(一)
|
SQL 存储 数据可视化