mysql是一个开源的、oracle支持的基于结构化查询语言(sql)的关系数据库管理系统(rdbms)。它可以在所有主要平台上运行,包括windows、linux和unix。尽管mysql的应用范围很广,但它最常与在线发布和web应用程序相关联。
在本文中,小编将和大家一起讨论mysql内部如何工作的?包括它的内部工作原理和组件。
一、mysql的工作原理
mysql遵循客户端-服务器模型。mysql的核心是mysql服务器,它管理所有数据库命令或指令。基本上,mysql服务器可用作用户嵌入到单独应用程序中的库,也可用作客户端服务器网络环境的独立程序。
此外,mysql还运行多个支持mysql数据库管理的实用程序。用户通过计算机上的mysql客户端向mysql服务器发送命令。
此外,mysql的设计使其能够快速管理大型数据库。虽然mysql通常驻留在一台机器上,但它将数据库发送到多个位置,因为用户可以通过不同的mysql客户端界面访问它。这些接口将sql语句传输到服务器,然后显示结果。
二、mysql的组件
当然,mysql架构由三层或三端组成。架构的层次包括顶部的查询执行端(或客户端)、中间的服务器资源端和底部的存储引擎。数据库架构定义了系统的存储端、客户端、客户端之间的交互和关系。下面我们详细讨论各个层。
1、客户端
mysql结构的客户端是数据库系统最终用户与之交互的组件。我们可以通过命令提示符或图形用户界面向服务器提交多个mysql命令。
对于每个有效的命令提交,屏幕上都会显示有效的输出。对于每个错误的命令提交,系统都会将错误通知作为反馈转发到屏幕。客户端提供的一些关键服务是:
(1)连接处理
当我们向服务器端提交请求时,服务器会确认该请求。连接立即建立以允许我们执行更多请求。此功能称为连接处理,是该结构的客户端的一项功能。
(2)验证
当用户连接到mysql服务器时,身份验证发生在服务器端。客户端组件借助用户名和密码完成身份验证。
(3)安全
通过身份验证后,用户成功连接到mysql服务器。之后,服务器检查特定用户是否具有对mysql服务器进行特定查询所需的必要权限。
2、服务器端
mysql架构的第二层也被称为“mysql架构的大脑”。这是因为该层控制mysql关系数据库管理系统的所有逻辑功能。当客户端向服务器提交请求时,服务器一旦与指令匹配就提供输出。mysql服务器的子组件包括:
(1)线程处理
客户端向服务器发送成功请求后,服务器接受请求,客户端进行连接。这种连接称为线程。该架构的服务器端有助于处理称为线程处理的过程中的每个线程。线程处理功能通过架构的服务器端执行。此外,线程处理模块还管理由线程执行的客户端查询。
(2)解析器
数据库中的数据通过称为词法分析的操作分解为多个标记。解析器是一个软件组件,它生成给定输入的数据结构/解析树。之后,mysql的解析器包括语法规则模块和词法扫描器。词法扫描器将整个输入分解为标记,而语法规则模块则查找创建此序列的sql语法规则组合并运行与这些规则关联的代码。最后,解析器生成一个解析树,供优化器使用。与某些将查询的文本表示形式转换为字节代码的解析器相反,mysql的解析器将其转换为程序内存中内部互连的c++/c结构。
(3)优化器
解析完成后,系统会在优化器块上应用不同类型的优化技术。这些技术可能包括查询重写、正确的索引选择和扫描表的顺序。在这里,mysql使用基于成本的方法进行优化。
当然,mysql会尝试预测不同执行计划的成本并选择最便宜的。最初,成本单位是单个任意4 kb数据页读取。然而,它变得更加复杂,并包括运行where子句比较的成本等因素。
(4)查询缓存
查询缓存存储输入查询语句的整个结果集合。在解析查询之前,服务器会查阅查询缓存,该缓存仅存储select语句及其结果集。如果用户提交的查询与缓存中已有的查询类似,服务器会跳过查询的解析、优化和执行。服务器仅中继其先前存储的结果集。
之后,当服务器从分配给变量“query_cache_size”的值启动时,mysql 会同时初始化并为查询缓存分配特定数量的内存。如果您更新此变量或将其设置为其当前值,mysql将删除所有缓存的查询,将缓存中断到特定大小,并重新启动缓存内存。
总而言之,mysql是一种广泛使用、经过时间考验、功能齐全的现代关系数据库管理系统。世界各地的组织都将其用于关键任务业务数据处理和存储,作为面向消费者的流行应用程序的后端,以及作为强大的web软件堆栈的一部分。
一批AI新势力登上创新加速营路演台
点云深度学习方法的最新进展综述
台系LED晶粒首季财报持续亏损,第2季市况有望步出谷底
ADI推出业界首款高集成8通道超声接收器AD9670
GitHub重向伊朗开发者打开大门
MySQL内部如何工作的?
Bada系统学习-启动应用
如何避免机械设备不受振动的干扰方案解析
三星自家Exynos8890能媲美高通骁龙835吗?
总结一下高速信令的指标与应用场景
新闻资讯 | 同星智能签约JOTACTIC捷策动能为台湾区域授权代理商
晶体三极管的伏安特性曲线
影驰GTX1660Ti大将评测 目前最强能效比GPU
ase宽带光源厂家
Gocator三维智能传感器在锂电池缺陷检测中的应用
AI+硬件_互联网思维和整体式思维相比
数美科技完成亿元融资 AI在风控领域起到了驱动作用
铅酸蓄电池的安装步骤及注意事项
Klipsch推出新款蓝牙随身音箱,支持蓝牙无线与3.5mm有线
70%!台积电3nm按良率收费!