MySQL学习总结-基础架构概述


Posted in MySQL onApril 05, 2021

1、总述

MySQL可以分为Server层存储引擎层
MySQL学习总结-基础架构概述
Server层: 包括大多数 MySQL 中的核心功能,所有跨存储引擎的功能也在这一层实现,包括存储过程、触发器、视图等。
存储引擎层: 包括 MySQL 常见的存储引擎(MyISAM、InnoDB和Memory 等),最常用的是InnoDB,也是现在MySQL的默认存储引擎。存储引擎也可以在创建表的时候手动指定。

2、连接器

用于连接用户和MySQL数据库。
1、用户发起连接(mysql -u 用户名 -p 密码);
2、连接器会根据用户输入的用户名和密码验证你的登录身份;
3、根据权限表中的记录来判定用户的权限。

3、查询缓存

以key-value 对的形式存储以前执行过的语句及结果;被直接放到内存中,可以直接返回结果。
key: 查询语句
value: 查询结果

注: 不建议使用;因为只要在 MySQL 中对某一张表执行了更新操作,那么所有的查询缓存就会失效,对于更新频繁的数据库来说,查询缓存的命中率很低

4、分析器

用于对SQL语句的词法分析和语法分析。
词法分析: 解析SQL语句,识别其中的关键字,字符串,空格;
语法分析: 对词法分析的结果,进行分析,判断SQL语句是否符合MySQL语法。

5、优化器

根据数据库统计信息、索引等,选择出一种效率更高的执行方案。

6、执行器

1、判断是否有执行这条语句的权限
2、执行器就会根据表的引擎定义,去使用这个引擎提供的接口。

7、SQL语句执行顺序

MySQL学习总结-基础架构概述
WHERE 和 ON 的区别
如果有外部列,ON 针对过滤的是关联表,主表(保留表)会返回所有的列;如果没有添加外部列,两者的效果是一样的;

对主表的过滤应该使用 WHERE;对于关联表,先条件查询后连接则用 ON,先连接后条件查询则用 WHERE;

8、临时表

MySQL 在执行 SQL 语句的过程中,通常会临时创建一些存储中间结果集的表,临时表只对当前连接可见,在连接关闭时,临时表会被删除并释放所有表空间。

MySQL 相关文章推荐
mysql的MVCC多版本并发控制的实现
Apr 14 MySQL
MySQL 慢查询日志深入理解
Apr 22 MySQL
MySql存储过程之逻辑判断和条件控制
May 26 MySQL
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
May 29 MySQL
mysql外连接与内连接查询的不同之处
Jun 03 MySQL
MySQL库表名大小写的选择
Jun 05 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
mysql连接查询中and与where的区别浅析
Jul 01 MySQL
mysql 联合索引生效的条件及索引失效的条件
Nov 20 MySQL
VS2019连接MySQL数据库的过程及常见问题总结
Nov 27 MySQL
一次Mysql update sql不当引起的生产故障记录
Apr 01 MySQL
MySQL中IO问题的深入分析与优化
Apr 02 MySQL
MySQL基础(一)
Apr 05 #MySQL
MySQL基础(二)
MySQL锁机制
MySQL令人咋舌的隐式转换
Apr 05 #MySQL
mysql知识点整理
Apr 05 #MySQL
浅析InnoDB索引结构
Apr 05 #MySQL
MySQL入门命令之函数-单行函数-流程控制函数
Apr 05 #MySQL
You might like
PHP Squid中可缓存的动态网页设计
2008/09/17 PHP
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php 网页播放器用来播放在线视频的代码(自动判断并选择视频文件类型)
2010/06/03 PHP
php实现mysql数据库连接操作及用户管理
2015/11/08 PHP
Laravel 已登陆用户再次查看登陆页面的自动跳转设置方法
2019/09/30 PHP
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
javascript与jquery中跳出循环的区别总结
2013/11/04 Javascript
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
jQuery多项选项卡的实现思路附样式及代码
2014/06/03 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
关于vue-cli 3配置打包优化要点(推荐)
2019/04/22 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
通过实例解析jQ Ajax操作相关原理
2020/09/23 Javascript
可拖拽组件slider.js使用方法详解
2020/12/04 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
使用cx_freeze把python打包exe示例
2014/01/24 Python
解析Python中while true的使用
2015/10/13 Python
python解决汉字编码问题:Unicode Decode Error
2017/01/19 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
python+pyqt5实现24点小游戏
2019/01/24 Python
对Python3 * 和 ** 运算符详解
2019/02/16 Python
Pycharm创建python文件自动添加日期作者等信息(步骤详解)
2021/02/03 Python
html5服务器推送_动力节点Java学院整理
2017/07/12 HTML / CSS
使用html2canvas将页面转成图并使用用canvas2image下载
2019/04/04 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
Bose美国官网:购买Bose耳机和音箱
2019/03/10 全球购物
Parfumdreams芬兰:购买香水和化妆品
2021/02/13 全球购物
为什么要做架构设计
2015/07/08 面试题
应用电子技术专业个人求职信
2013/09/21 职场文书
中学生班主任评语
2014/01/30 职场文书
学生操行评语大全
2014/04/24 职场文书
困难补助申请报告
2015/05/19 职场文书
社区志愿服务活动感想
2015/08/07 职场文书