【MySQL基本功系列】第一篇 先熟悉MySQL的运行逻辑

编程入门 行业动态 更新时间:2024-10-24 14:25:42

【MySQL<a href=https://www.elefans.com/category/jswz/34/1764760.html style=基本功系列】第一篇 先熟悉MySQL的运行逻辑"/>

【MySQL基本功系列】第一篇 先熟悉MySQL的运行逻辑


我将推出一系列关于MySQL的博客文章,涵盖了从入门到深入底层的原理。这些文章将包括MySQL的运行逻辑、InnoDB存储引擎、SQL优化、undo log、bin log等多个方面的知识。希望这些文章能为你提供宝贵的信息和洞见,并帮助你更好地理解和应用MySQL。同时,非常欢迎各位读者提供反馈和建议,让我们一起共同进步。

在我们深入研究MySQL的底层原理之前,建议先对MySQL的运行逻辑和各核心组件之间的关系有一定的了解。在这篇博文中,我将为你简要介绍MySQL的运行逻辑和相关核心组件,这将有助于更好地理解MySQL的工作方式。

MySQL是一款强大的开源关系型数据库管理系统,采用了客户端-服务器架构,为应用程序提供了数据存储和检索等关键功能。通过理解MySQL的基本运行机制,我们可以更轻松地探索其更深层的技术细节。

MySQL的运行逻辑

让我们首先熟悉一下用户请求从发送到MySQL最终将数据写入磁盘的整个过程。这个过程涉及多个关键步骤,我将跟随以下流程图,逐一解释每一步骤。

简单描述一下流程图中每个部件的作用:

用户请求:

用户请求访问SQL查询、插入、更新或删除等操作。

连接池:

当我们需要与数据库交互时,首要任务是通过MySQL驱动与数据库建立网络连接。只有在成功建立连接之后,我们的应用程序才能执行增删改查等SQL操作。

然而,一个系统绝不仅仅只跟数据库创建一个连接,因为我们多线程处理的时候,如果仅有一个连接的话,各线程都要去抢夺一个连接去访问数据库,这样的多线程是没有意义的。

Tomcat中的多线程应用程序在每次需要访问数据库时,如果都是通过创建一个数据库连接、执行SQL语句,然后销毁连接,下一次再重新建立数据库连接,那肯定是效率很低下的。

所以,这个时候就可以引入了数据库连接池的概念,连接池在内部维护了一定数量的数据库连接,当线程需要连接数据库时,它可以直接从连接池中获取一个可用的连接,而不是每次都重新创建一个。使用完连接后,线程不需要销毁它,只需将连接返回到连接池中,以供其他线程继续使用。这种方式避免了频繁的连接创建和销毁过程,大大提高了效率。

常用的连接池有DBCP,C3P0,Druid等。

MySQL线程池:

MySQL服务器中维护了一个线程池,当一个客户端应用程序尝试连接到MySQL服务器时,MySQL服务器会接受这个连接请求。它会为每个连接分配一个线程来处理客户端的请求。这些线程在执行期间会处理SQL查询、更新、事务等操作。

SQL接口:

MySQL内部首先提供了一个组件,就是SQL接口(SQL Interface),他是一套执行SQL语句的接口,当MySQL的线程从网络连接中读取出来一个SQL语句之后,就会转交给SQL接口去执行。

SQL解析器:

MySQL的SQL解析器就是按照既定的SQL语法,对这个SQL按照SQL语法规则编写的SQL语句进行解析,然后理解这个SQL语句要干什么事情。如果SQL存在语法错误,解析器将生成错误消息。

查询优化器:

一旦确定了执行计划,查询优化器会评估不同的执行计划,选择最有效的执行方式。这可能涉及到索引的选择、连接操作的排序和过滤条件的应用,以最大程度地提高查询性能。

执行器:

查询优化器确定了执行计划后,将执行计划传递给执行器。执行器负责执行查询,检索或修改数据,并将结果返回给应用程序线程。

存储引擎:

MySQL支持多种存储引擎,如InnoDB、MyISAM等(目前一般都用InnoDB,我们后续的博文,也仅对InnoDB进行讲解)。存储引擎负责实际的数据存储和检索。它们处理数据的读写操作,可以将数据存储在内存或磁盘上,具体取决于存储引擎的类型和配置。

数据的写入:

存储引擎可以将数据写入内存缓冲区,然后定期将数据刷新到磁盘。这确保了数据的持久性,即使发生系统崩溃,数据也不会丢失。

END

以上大概就是MySQL大概的运行逻辑以及步骤,接下来,我将针对InnoDB存储引擎做一系列的更深入的介绍。

更多推荐

【MySQL基本功系列】第一篇 先熟悉MySQL的运行逻辑

本文发布于:2023-11-16 08:47:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1614901.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:基本功   第一篇   逻辑   熟悉   系列

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!