首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【高性能MySQL】MySQL逻辑架构

【高性能MySQL】MySQL逻辑架构

原创
作者头像
用户9295575
修改2024-12-29 14:54:07
修改2024-12-29 14:54:07
2500
举报

一,MySQL逻辑架构

第一层的服务不是MySQL独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。比如连接处理、授权认证、安全等。

第二层架构是MySQL比较有意思的部分。这层是MySQL的核心服务功能,包含:查询解析、分析、优化、缓存以及所有的内置函数(例如日期、时间、数学运算)所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。

第三层是存储引擎。存储引擎负责MySQL中数据的存储和提取。服务器通过API和存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。存储引擎API包含几十个底层函数,如:事务、根据主键查询一行记录等。但是存储引擎不会去解析SQL(InnoDB是个例外,它会解析外键定义)。不同的存储引擎之间也不会相互通信,而只是简单的响应上层服务的请求。

二、连接管理和安全性

每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心或者CPU中运行。服务器会负责缓存线程,不需要为每一个新的连接创建和销毁线程。MySQL提供了一个API,支持线程池插件,可以使用池中少量的线程来服务大量的连接。

三、优化与执行

MySQL会解析查询,并创建内部数据结构(解析树),然后对查询进行优化,包括重写查询、决定表的读取顺序,选择合适的索引等。用户可以通过特殊的关键字提示优化器,影响它的决策过程。也可以请求优化器解释优化过程的各个因素。使用户知道服务器如何惊醒优化决策的。

优化器并不关心表使用的是什么存储引擎,但是存储引擎对于优化查询是有影响的。优化器会请求存储引擎提供容量或某个具体操作的开销。

对于SELECT语句,在解析查询之前,服务器会先检查查询缓存,如果能找到对应的查询,服务器就不必再执行查询解析和优化职工整个过程了。

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一,MySQL逻辑架构
  • 二、连接管理和安全性
  • 三、优化与执行
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档