区块链技术博客
www.b2bchain.cn

MySQL 基础技术(一) —— MySQL 是怎么查询的?求职学习资料

本文介绍了MySQL 基础技术(一) —— MySQL 是怎么查询的?求职学习资料,有助于帮助完成毕业设计以及求职,是一篇很好的资料。

对技术面试,学习经验等有一些体会,在此分享。

之前,有一年多的工作客户端领域的工作经验。
后来,也在字节做了一年多的后端业务。
现在希望做一些总结,丰富一下自己在后端领域的积累。

引子

在日常工作中,我们执行了一个简单的查询语句:

select * from <table_name> where id = 647;

那么,在 MySQL 内部会如何工作呢?

架构

首先,MySQL 架构可以分为 Server层Engine层两部分。

Server(服务)层:

涵盖了 MySQL 上层核心服务功能。
包括 “连接器”、“查询缓存”、“分析器”、“优化器”、“执行器”等等。
以及内置功能函数(数学、时间计算等等),触发器、视图等等跨存储引擎的功能都在 Server 层实现。

Engine(引擎)层:

主要负责数据的存储和提取等底层服务。
其实现是插件式的,MySQL 支持 InnoDBMyISAMMemory 等多个存储引擎。
目前,最常用的是 InnoDB 存储引擎。
而从 MySQL 5.5.5 版本开始,InnoDB 成为了默认存储引擎。

可以使用 show engines; 命令来查看各个引擎。

show engines;

几个常用底层存储引擎的简单区别:
InnoDB:支持事务,支持行锁,支持外键。
MyISAM:不支持事务,只支持表锁,不支持外键。
Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失。


架构图解

MySQL 基础技术(一) ——  MySQL 是怎么查询的?

MySQL架构

接下来我们依次解释下各个组件:

1.连接器:

顾名思义,连接器负责跟客户端建立连接、获取权限、维持和管理链接的。

常用命令如下:

mysql -h$ip -P$port -u$user -p

在完成 TCP 握手后,连接器会基于用户名和密码来验证身份。
验证通过会查询出当前用户的权限。
(这代表:即使修改了用户权限,也只会影响下次连接时的权限。之前连接过的权限依然是旧的权限)

执行 show processlist; 可以查询当前的连接状态。

show processlist;

如果客户端长时间没有操作,连接器会自动断开。这个时间是由 wait_timeout 控制的,默认是8小时。

2.查询缓存

建立完连接之后,会优先查询有没有缓存。
在打开查询缓存的前提下,

之前,有一年多的工作客户端领域的工作经验。
后来,也在字节做了一年多的后端业务。
现在希望做一些总结,丰富一下自己在后端领域的积累。

引子

在日常工作中,我们执行了一个简单的查询语句:

select * from <table_name> where id = 647;

那么,在 MySQL 内部会如何工作呢?

架构

首先,MySQL 架构可以分为 Server层Engine层两部分。

Server(服务)层:

涵盖了 MySQL 上层核心服务功能。
包括 “连接器”、“查询缓存”、“分析器”、“优化器”、“执行器”等等。
以及内置功能函数(数学、时间计算等等),触发器、视图等等跨存储引擎的功能都在 Server 层实现。

Engine(引擎)层:

主要负责数据的存储和提取等底层服务。
其实现是插件式的,MySQL 支持 InnoDBMyISAMMemory 等多个存储引擎。
目前,最常用的是 InnoDB 存储引擎。
而从 MySQL 5.5.5 版本开始,InnoDB 成为了默认存储引擎。

可以使用 show engines; 命令来查看各个引擎。

show engines;

几个常用底层存储引擎的简单区别:
InnoDB:支持事务,支持行锁,支持外键。
MyISAM:不支持事务,只支持表锁,不支持外键。
Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失。


架构图解

MySQL 基础技术(一) ——  MySQL 是怎么查询的?

MySQL架构

接下来我们依次解释下各个组件:

1.连接器:

顾名思义,连接器负责跟客户端建立连接、获取权限、维持和管理链接的。

常用命令如下:

mysql -h$ip -P$port -u$user -p

在完成 TCP 握手后,连接器会基于用户名和密码来验证身份。
验证通过会查询出当前用户的权限。
(这代表:即使修改了用户权限,也只会影响下次连接时的权限。之前连接过的权限依然是旧的权限)

执行 show processlist; 可以查询当前的连接状态。

show processlist;

如果客户端长时间没有操作,连接器会自动断开。这个时间是由 wait_timeout 控制的,默认是8小时。

2.查询缓存

建立完连接之后,会优先查询有没有缓存。
在打开查询缓存的前提下,

之前,有一年多的工作客户端领域的工作经验。
后来,也在字节做了一年多的后端业务。
现在希望做一些总结,丰富一下自己在后端领域的积累。

引子

在日常工作中,我们执行了一个简单的查询语句:

select * from <table_name> where id = 647;

那么,在 MySQL 内部会如何工作呢?

架构

首先,MySQL 架构可以分为 Server层Engine层两部分。

Server(服务)层:

涵盖了 MySQL 上层核心服务功能。
包括 “连接器”、“查询缓存”、“分析器”、“优化器”、“执行器”等等。
以及内置功能函数(数学、时间计算等等),触发器、视图等等跨存储引擎的功能都在 Server 层实现。

Engine(引擎)层:

主要负责数据的存储和提取等底层服务。
其实现是插件式的,MySQL 支持 InnoDBMyISAMMemory 等多个存储引擎。
目前,最常用的是 InnoDB 存储引擎。
而从 MySQL 5.5.5 版本开始,InnoDB 成为了默认存储引擎。

可以使用 show engines; 命令来查看各个引擎。

show engines;

几个常用底层存储引擎的简单区别:
InnoDB:支持事务,支持行锁,支持外键。
MyISAM:不支持事务,只支持表锁,不支持外键。
Memory:所有数据置于内存的存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。并且其内容会在 MySQL 重新启动时丢失。


架构图解

MySQL 基础技术(一) ——  MySQL 是怎么查询的?

MySQL架构

接下来我们依次解释下各个组件:

1.连接器:

顾名思义,连接器负责跟客户端建立连接、获取权限、维持和管理链接的。

常用命令如下:

mysql -h$ip -P$port -u$user -p

在完成 TCP 握手后,连接器会基于用户名和密码来验证身份。
验证通过会查询出当前用户的权限。
(这代表:即使修改了用户权限,也只会影响下次连接时的权限。之前连接过的权限依然是旧的权限)

执行 show processlist; 可以查询当前的连接状态。

show processlist;

如果客户端长时间没有操作,连接器会自动断开。这个时间是由 wait_timeout 控制的,默认是8小时。

2.查询缓存

建立完连接之后,会优先查询有没有缓存。
在打开查询缓存的前提下,

部分转自互联网,侵权删除联系

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » MySQL 基础技术(一) —— MySQL 是怎么查询的?求职学习资料
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们