MySQL体系

本文详细介绍了MySQL的体系架构,包括ClientConnectors、MySQL Server服务端、连接池、管理服务和工具组件、SQL接口、查询解析器、查询优化器、高速缓存区、处理器以及存储引擎。解析器对SQL语句进行验证和解析,优化器则采用“选取-投影-联接”策略进行查询优化。存储引擎如InnoDB管理数据的存储和操作。此外,还涉及到了文件和日志的存储位置以及数据的缓存策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、MySQL体系架构

Client Connectors

      所有与MySQL进行sql交互的终端

MySQL construction

   MySQL server 服务端

       1、Connection Pool(数据库连接池)
            管理、缓冲用户的连接、用户名密码校验、权限校验、线程处理等需要缓存的需求
        2、Management Serveices & Utilities(管理服务和工具组件)
            系统管理和控制工具,例如备份恢复、Mysql复制、集群等 
        3、SQL Interface(sql接口,可理解为对外暴露的OpenApi) 
           接受用户的SQL命令,并且返回用户需要查询的结果
        4、Parser(查询解析器) 
           SQL命令传递到解析器的时候会被解析器验证和解析(权限、语法结构),解析器是由Lex和YACC实现的(其他语言), 
           主要功能: 
             ①将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的 
             ②如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的 
        5、Optimizer(查询优化器)
            SQL语句在查询之前会使用查询优化器对查询进行优化,使用的是“选取-投影-联接”策略进行查询
            select id,name from user where age = 40; 
            a、这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行age过滤 
            b、这个select查询先根据id和name进行属性投影,而不是将属性全部取出以后再进行过滤 
            c、将这两个查询条件联接起来生成最终查询结果
        6、Cache和Buffer(高速缓存区)
             Cache是加速“读”,而 buffer是缓冲“写”,前者解决读的问题,保存从磁盘上读出的数据,后者是解决写的问题,保存即将要写入到磁盘上的数据。

       如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据,通过LRU算法将数据的冷端溢出,
          未来得及时刷新到磁盘的数据页,叫脏页。这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等 

     7、processer处理器(执行器)

       根据所对应的处理请求的不同,是分别由 insert 处理器、delete 处理器、update 处理器、create 处理器,以及 alter 处理器这些小模块来负责不同的 DML 和 DDL


Engine 存储引擎 

       存储引擎说白了就是如何管理操作数据(存储数据、如何更新、查询数据等)的一种方法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型),注意存储引擎是表级别的,而不是数据库级别的,不同的表可以指定不同的存储引擎
            CREATE TABLE `test` (
                    name` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL
            ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
 

 files & logs 磁盘文件

        真正存储Mysql数据、索引、日志等物理文件的地方,不同的Engine文件目录会有所不同,比如对于myIsam,
        .frm存储表定义,.MYD存储数据文件 ,.MYI代表索引文件。对于innodb,.frm存储表定义,.idb存储数据和索引,在同一个文件中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值