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分库分表与分区的入门指南
Apr 22 MySQL
IDEA 链接Mysql数据库并执行查询操作的完整代码
May 20 MySQL
MySQL 使用索引扫描进行排序
Jun 20 MySQL
MySQL空间数据存储及函数
Sep 25 MySQL
教你如何让spark sql写mysql的时候支持update操作
Feb 15 MySQL
MySQL多表查询机制
Mar 17 MySQL
mysql的单列多值存储实例详解
Apr 05 MySQL
排查并解决MySQL生产库内存使用率高的报警
Apr 11 MySQL
详细介绍MySQL中limit和offset的用法
May 06 MySQL
Mysql 文件配置解析介绍
May 06 MySQL
sql查询语句之平均分、最高最低分及排序语句
May 30 MySQL
MySQL导致索引失效的几种情况
Jun 25 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
PHP5 面向对象(学习记录)
2009/12/02 PHP
PHP 第二节 数据类型之数组
2012/04/28 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
PHP数组排序之sort、asort与ksort用法实例
2014/09/08 PHP
让ThinkPHP支持大小写url地址访问的方法
2014/10/31 PHP
Zend Framework教程之请求对象的封装Zend_Controller_Request实例详解
2016/03/07 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
如何使用jQUery获取选中radio对应的值(一句代码)
2013/06/03 Javascript
JS 实现Table相同行的单元格自动合并示例代码
2013/08/27 Javascript
一张表格告诉你windows.onload()与$(document).ready()的区别
2014/05/16 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
jquery获取链接地址和跳转详解(推荐)
2017/08/15 jQuery
详解微信小程序中的页面代码中的模板的封装
2017/10/12 Javascript
详解Vue.js v-for不支持IE9的解决方法
2018/12/29 Javascript
JavaScript设计模式之代理模式实例分析
2019/01/16 Javascript
JS实现容器模块左右拖动效果
2020/01/14 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
[01:03:54]Liquid vs IG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
[46:14]完美世界DOTA2联赛PWL S3 Magma vs INK ICE 第一场 12.11
2020/12/16 DOTA
python回调函数的使用方法
2014/01/23 Python
通过数据库向Django模型添加字段的示例
2015/07/21 Python
python网络编程调用recv函数完整接收数据的三种方法
2017/03/31 Python
python中实现指定时间调用函数示例代码
2017/09/08 Python
Python中对象的引用与复制代码示例
2017/12/04 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
python 实现交换两个列表元素的位置示例
2019/06/26 Python
TensorFlow实现自定义Op方式
2020/02/04 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
德国亚洲食品网上商店:asiafoodland.de
2019/12/28 全球购物
2016年重阳节慰问信
2015/12/01 职场文书
党风廉政承诺书2016
2016/03/25 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
学习师德师风的心得体会(2篇)
2019/10/08 职场文书
vue 数字翻牌器动态加载数据
2022/04/20 Vue.js