Mysql的逻辑架构
Mysql的逻辑架构图
相信很少有人看过这个图,因为我刚看见的时候也是挺萌的,在工作中一般大家都用的是Mysql也都会用,但是为啥要看这个呢,我们需要对Mysql的整体有一个简单的认知!
Mysql是分层的
整体分为
Connectors:连接驱动
Enterprise Management Services & Utillties :服务管理器和一些工具
Connection Pool:连接池
Sql interfice : SQL接口
Parser:解析器
optimizer:优化器
Caches & buffer :缓存
Pluggable Storage Engines:存储引擎 第一次知道原来Mysql有这么对存储引擎[捂脸]
file system:文件系统 也就是C盘D盘只不过图上画的是分了NTFS和SAN
files & log : 文件与日志
是不是看完对Mysql又有了一个全新的认识;我也是
接下来说一下查询缓存
缓存分别会缓存SQL和数据
SQL缓存默认开启的
数据缓存默认是关闭的
数据缓存需要手动开启同时设置缓存大小
// 查询数据缓存是否开启 show variables like '%query_cache_type%' // 查询缓存的大小 show variables like '%query_cache_size%' // 设置开启缓存
如果不是ON,修改配置文件以开启查询缓存,默认是OFF:
vi /etc/my.cnf
[mysqld]中添加:
query_cache_size = 20M
query_cache_type = 1
// 设置缓存大小 set global query_cache_size = 134217728;
手写SQL
SQL解析
优化器
源SQL
explain select * from esp_76 where creator =1;
由此可见是存在where条件的 查询的表是esp_76
源SQL
explain select * from esp_76 where 1=1;
由此可见在经过SQL优化器之后,where 1=1被优化掉了,在Mysql看来有where和没有where的执行结果是一致的
源SQL
explain select * from esp_76 where id = null;
由此可见因为ID是主键,所以不可能为null,所以Mysql在extra中表示出这条SQL是没有返回结果的,并且table字段也是空的,干脆连表都不扫描了
这就是SQL的优化器
太困了,下一章说存储引擎
作者:彼岸舞
时间:2020\07\04
内容关于:Mysql
本文来源于网络,只做技术分享,一概不负任何责任
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」