预习加复习(小林coding图解MySQL)

懒人开更

-MySQL的执行流程
彻底了解MySQL语句的底层执行过程是很关键的,理解之后可以帮助我们写出效率更高的SQL语句

select * from product where id = 1;

image
1.可以看到, MySQL 的架构共分为两层:Server 层和存储引擎层,

Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包括连接器,查询缓存、解析器、预处理器、优化器、执行器等。另外,所有的内置函数(如日期、时间、数学和加密函数等)和所有跨存储引擎的功能(如存储过程、触发器、视图等。)都在 Server 层实现。

存储引擎层负责数据的存储和提取。支持 InnoDB、MyISAM、Memory 等多个存储引擎,不同的存储引擎共用一个 Server 层。现在最常用的存储引擎是 InnoDB,从 MySQL 5.5 版本开始, InnoDB 成为了 MySQL 的默认存储引擎。我们常说的索引数据结构,就是由存储引擎层实现的,不同的存储引擎支持的索引类型也不相同,比如 InnoDB 支持索引类型是 B+树 ,且是默认使用,也就是说在数据表中创建的主键索引和二级索引默认使用的是 B+ 树索引。

2.这里直接把小林图解里面的图片copy过来,实在太强了,小林哥。对于数据库我们一定要有客户端-服务器(Client-Server)模型的概念,这一点康老师也曾反复强调过,这里直接贴一个chatgpt对于MySQL(Client-Server)的阐释

  • MySQL 数据库系统由一个服务器端(也称为 MySQL 服务器或 MySQL 引擎)和客户端组成。服务器端负责存储、管理和处理数据库,而客户端是用于与服务器进行交互的应用程序。

  • 在 MySQL 中,客户端可以通过多种方式与服务器进行通信,例如通过命令行界面(如 MySQL 命令行客户端)、图形化界面工具(如 MySQL Workbench)或各种编程语言的 API(如 Python、Java等)。

  • 客户端通过建立与 MySQL 服务器之间的连接来发送查询和其他数据库操作请求,并接收服务器返回的结果和响应。客户端可以执行各种操作,如创建和管理数据库、执行查询、插入、更新和删除数据等。

  • 总之,客户端和服务器端在 MySQL 中共同协作,通过网络协议进行通信,客户端发送请求,服务器端处理请求并提供相应的数据库服务。这种客户端-服务器架构使得 MySQL 能够支持多个客户端同时访问同一个数据库,并提供高效的数据处理和管理能力。

我们一般都是访问本地MySQL,即本机电脑的3306端口号对应的进程,因此导致我们对服务端的了解甚少,毕竟我们一般都是在终端或者shell中与MySQL交互

值得一提的是,如今MySQL8.0版本存储引擎仍然使用的是Innodb
image
不信你打开自己MySQL目录下的data文件,随便打开一个数据库文件,都是IBD文件,因此我们可以随身携带U盘处理数据库,这里我们可以把数据库当成一个普通的文件

posted @ 2024-05-18 00:08  LazyBreeze007  阅读(12)  评论(0)    收藏  举报
返回顶端