一文搞懂MySQL运行机制原理
前文我们了解了MySQL采用客户端/服务器架构,用户通过客户端程序发送增删改查需求,服务器程序收到请求后处理,并且把处理结果返回给客户端。这篇文章主要看下MySQL服务端是如何处理客户端的请求,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
MySQL服务器体系架构MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。
客户端连接器:提供与MySQL服务器建立的支持。
主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六个部分。
1) 连接池:存储和管理客户端与数据库的连接。 2) 系统管理和控制工具:集群、备份、安全管理。 3) SQL接口:接受客户端发送的各种SQL命令并返回查询结果。 4) 解析器:解析SQL,生成一颗解析树,验证SQL是否合法。 5) 查询优化器:将解析树转化成执行计划,与存储引擎进行交互。 6) 缓存:各种缓存,比如表、记录、权限等等,缓存有命中查询结果直接返回。 存储引擎层负责MySQL中数据的存储与提取,与底层系统文件进行交互,可插拔,常见的两类:MyISAM和InnoDB。
系统文件层负责将数据库的数据和日志存储在文件系统之上,并完成与存储引擎的交互,比如日志、配置文件等等。
服务器处理客户端请求客户端可以向服务器发送增删改查等各类请求,我们来看一下服务器是如何处理客户端发送的请求。
客户端与服务器进程建立连接,每当有一个客户端进程连接到服务器进程时,服务器进程都会创建一个线程来专门处理与这个客户端的交互,当该客户端退出时会与服务器断开连接,服务器会把线程缓存起来。
解析与优化如果两个查询请求在任何字符上的不同都会导致缓存不命中。请求中包含某些系统函数、用户自定义变量和函数、一些系统表也不会被缓存。
只要该表的结构或者数据被修改,则该表的所有高速缓存查询都将无效并删除。
PS:8.0中查询缓存已经删除了
如果查询缓存没有命中,就进入查询阶段,服务器先对文本做分析,判断语法是否正确,然后从文本中将要查询的表、各种查询条件都提取出来放到内部使用的一些数据结构上。
算是一个编译过程,涉及词法解析、语法分析、语义分析等阶段。
对SQL做优化,生成一个执行计划,表明了应该使用哪些索引进行查询,表之间的连接顺序是怎样的。
我们可以使用Explain来查看某个语句的执行计划。
完成查询优化之后还没有真正去访问真实的数据表,数据的存储和提取操作都封装到了这个模块里。不同存储引擎管理的表具体的存储结构可能不同,采用存取算法也可能不同。
MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。mysql执行查询的过程如下:
客户端先发送查询语句给服务器 服务器检查缓存,如果存在则返回 进行sql解析,生成解析树,再预处理,生成第二个解析树,最后再经过优化器,生成真正的执行计划 根据执行计划,调用存储引擎的API来执行查询 将结果返回给客户端。到此这篇关于一文搞懂MySQL运行机制原理的文章就介绍到这了,更多相关MySQL运行机制内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
我想要获取技术服务或软件
服务范围:MySQL、ORACLE、SQLSERVER、MongoDB、PostgreSQL 、程序问题
服务方式:远程服务、电话支持、现场服务,沟通指定方式服务
技术标签:数据恢复、安装配置、数据迁移、集群容灾、异常处理、其它问题
本站部分文章参考或来源于网络,如有侵权请联系站长。
数据库远程运维 一文搞懂MySQL运行机制原理
相关文章
- MySQL Status Slow_queries 数据库状态作用意思及如何正确
- 探索 MySQL 数据库编码原理(查看mysql编码)
- MySQL 编码解析:字符集编码掌握法(mysql编码格式)
- MySQL死锁:知晓真相的原因(mysql死锁的原因)
- MySQL行锁:实现原理与优化(mysql行锁实现)
- 及其应用MySQL:原理与应用(数据库mysql原理)
- 用MySQL存储图像:轻松实现图片上传(图片上传到mysql)
- 和 NULLMySQL字段 0 和 NULL:区别与深度剖析(mysql字段0)
- MySQL数据库连接测试:深入探索实现原理(mysql数据库连接测试)
- Yum安装MySQL:一步一步指导(yum是否安装mysql)
- MySQL的锁原理详解(mysql锁原理)
- MySQL主主复制:原理及实现(mysql主主复制原理)
- 的内存MySQL:提升服务性能的内存需求(mysql要多大)
- MySQL:安全面前谨慎,小心被后门伤害(mysql后门)
- 深入理解MySQL的工作原理,解读数据库的核心架构与运作机制。(mysql工作原理)
- 深入解析:MySQL归档模式的实现原理及应用场景(mysql归档模式)
- MySQL的约束是什么详解数据库约束原理及其应用(mysql中什么是约束)
- 深入了解MySQL不可重复读的运作原理(mysql不可重复读原理)
- 深入剖析MySQL双层游标的实现原理(mysql两层游标)