前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3分钟带你玩转MySQL体系结构和查询原理!

3分钟带你玩转MySQL体系结构和查询原理!

原创
作者头像
Java程序猿
修改2021-07-15 10:51:33
3110
修改2021-07-15 10:51:33
举报
文章被收录于专栏:Java核心技术Java核心技术

前言

数据库在我们工作中是常用的工具,公司的重要业务信息大部分都会存储在数据库中。

因此,对于开发人员或运维人员来说,掌握数据库基本原理是必要的技能。无论你使用的是何种数据库,了解数据库的体系架构是非常必要的。“知此知彼,方能百战百胜”。

下面小编就带你来了解MySQL的体系架构

首先我们得明确MySQL的体系架构主要是数据库数据库实例组成的,在了解MySQL的实质之前,先来了解以下的概念。

  1. MySQL是一种单进程多线程的数据库,而数据库实例则是以一个进程的方式在系统中体现出来的。
  2. MySQL的文件格式有 ibd、MYI、MYD、frm 等结尾的格式文件。

一、MySQL架构示意图

从上图中我们可以发现,整个MySQL框架由两部分组成,

1、 上层是MySQLD,又被叫做“SQL的图层”,里面包含有 查询解析、分析、优化、缓存以及系统自定义的函数(比如,时间、三角函数、加密函数等),主要能实现的功能有:视图、触发器、存储过程等

2、 下层是为上层提供接口的各式各样的存储引擎,又被称之为“存储引擎图层”。存储引擎包含有很多底层存储引擎诸如 InnoDB、MyISAM、Memory…….,它们被用于像“根据主键查询一行记录”等等方法。但存储引擎不会去解析SQL,各个存储引擎直接不会发生互相通信,他们就仅仅的响应上层服务器端的请求

二、查询工作原理示意图

1、 客户端首先向服务器发送一条查询语句。

2、 服务器接收到查询语句之后,做两件事情

  • 一是,检查查询语句是否完全匹配
  • 二是,然后再检查该条语句是否具有权限

3、 当这两个条件都满足的时候,即开始索引缓存,缓存中存在的话则直接返回结果,如果不存在的话,则进入下一个环节,即步骤4。

4、 先进行预处理阶段,解析SQL语句,生成新的解析树,接着再交给对应的模块处理,根据优化器优化,然后生成对应的执行计划。

5、 优化器的执行计划就是,调用存储引擎中的API执行计划表,当有数据变化的时候,打开日志功能,就会记录在相应的二进制日志文件中。

6、 设置缓存,请求完成之后,将结果返回给连接进/线程模块,然后到客户端,并决定是等待请求还是与客户端连接断开。

结论

以上就是MySQL的软件体系架构和查询工作原理,对于开发人员以及运维人员的我们很重要。了解了他们,就能为你的数据库开发道路前进中,扫除很多障碍。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 一、MySQL架构示意图
  • 二、查询工作原理示意图
  • 结论
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档