IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Mysql 45讲学习笔记(一)一条sql语句的执行 -> 正文阅读

[大数据]Mysql 45讲学习笔记(一)一条sql语句的执行

一.Mysql基本架构

SELECT
	* 
FROM
	T 
WHERE
	ID = 10

在这里插入图片描述

MySQL可以分为Server层和存储引擎层两部分

  1. server层包括连接器查询缓存分析器执行器内置函数(日期,时间,数字和加密函数等),所有的跨存储引擎的功能都在这一层实现,比如存储过程触发器视图等。
  2. 存储引擎层 负责数据的存储和提取:其架构模式是插件式的,支持InnoDB,MyISAM,Memory等多个存储引擎
  3. 最常用的引擎是InnoDB,从MySQL5.5.5版本开始默认存储引擎。

二.连接器

连接器负责与客户端建立连接获取权限维持和管理连接:

mysql -h$ip -P$port -u$user -p
  • 用户名密码认证通过,连接器会到权限表里查出你拥有的权限
  • 用户成功建立连接后,你用管理员账号对这个用户的权限做修改,也不会影响已存在连接的权限
  • 当修改用户权限后,需要新建连接才会使用新的权限设置

数据库的长连接

  • 长连接是指连接成功后,如果客户端持续有请求,则一直使用同一个连接 (推荐)
  • 短连接是指每次执行完很少的几次查询就断开连接,下次查询重新建立一个

长连接缺点

  • 内存占用过大:Mysql执行过程中临时使用的内存管理在连接对象里面,这些资源会在断开连接以后才释放,所以长连接积累下来,导致内存占用太大,被系统强行(OOM)

长连接内存占用过大的解决方案

  • 定期断开长连接
  • 执行 mysql_reset_connection重新初始化连接资源

三.查询缓存

  • MYSQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这个语句
  • 查询信息会以key-value对的形式,直接缓存在内存中。
  • key是查询语句value是查询结果
  • 语句不在缓存中,会继续后续执行将结果回写到查询缓存

查询缓存往往弊大于利

  • 查询缓存失效频繁,任何更新修改删除操作,都会 让查询缓存失效
  • MySQL8.0版本以后就没有查询缓存了

四.分析器

  • 词法分析
  • 语法分析

五.优化器

  • 优化器是在表里面有多个索引的时候,决定使用哪个索引
  • 一个语句有多表关联(join)的时候决定各个表的连接顺序
SELECT
   t1.* 
FROM
   t1
   LEFT JOIN t2 ON t2.d = 20 
WHERE
   t1.c = 10

优化器会判断走不走索引,选择最快的执行方式

六.执行器

MySQL通过分析器知道你要做什么,通过优化器知道怎么做,进入执行器阶段,开始执行语句

执行步骤
1.权限验证-对该表是否有查询修改删除权限
2.调用存储引擎执行

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-06-18 23:28:02  更:2022-06-18 23:29:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 21:34:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码