Mysql原理解析 - 基本架构

  • 1、Mysql的基本架构图
    • 1.1 连接器
    • 1.2 查询缓存
    • 1.3 分析器
    • 1.4 优化器
    • 1.5 存储引擎

1、Mysql的基本架构图

1.1 连接器

连接器负责跟客户端建立连接,获取权限、维持和管理连接
– 用户名密码验证
– 查询权限信息,分配对应的权限
– 可以使用show processlist查看现在的连接
– 如果太长时间没有动静,就会自动断开,通过wait_timeout控制,默认8小时
▪ 连接可以分为两类:
– 长连接:推荐使用,但是要周期性的断开长连接
– 短链接:

1.2 查询缓存

当执行查询语句的时候,会先去查询缓存中查看结果
之前执行过的sql语句及其结果可能以key-value的形式存储在缓存中
如果能找到则直接返回,如果找不到,就继续执行后续的阶段。
▪ 但是,不推荐使用查询缓存:
– 1、查询缓存的失效比较频繁,只要表更新,缓存就会清空
– 2、缓存对应新更新的数据命中率比较低

1.3 分析器

词法分析:Mysql需要把输入的sql字符串进行识别,解析每个部分代表什么意思
– 把字符串 T 识别成 表名 T – 把字符串 ID 识别成 列ID
▪ 语法分析:
▪ 根据语法规则判断这个sql语句是否满足mysql的语法,如果不符合就会报错“You have an error in your SQL synta”

1.4 优化器

在具体执行SQL语句之前,要先经过优化器的处理
– 当表中有多个索引的时候,决定用哪个索引
– 当sql语句需要做多表关联的时候,决定表的连接顺序
– 等等
▪ 不同的执行方式对SQL语句的执行效率影响很大
– RBO:基于规则的优化
– CBO:基于成本的优化

1.5 存储引擎


ibdata:innodb默认情况下,所有的数据文件的表空间 --> 修改如下
innodb将每一个表的数据,单独使用一份数据文件保存

db.opt:每一个数据库的结构文件

Mysql原理解析 - 基本架构相关推荐

  1. 【MySQL原理解析】01. 一条SQL查询语句是如何执行的

    这是[MySQL原理解析]的第一篇文章,MySQL我看了很多的书与教程,对其原理有一定的理解,一直想写一系列的文章来把MySQL的原理给讲清楚,一直没有时间写,今天算是个开头吧.万事开头难,咱们先破了 ...

  2. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  3. mysql新增列并同时增加数据_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...

    在上一期图解 图解MySQL | MySQL DDL为什么成本高?中,我们介绍了: 传统情况下,为表添加列需要对表进行重建 腾讯团队为 MySQL 引入了 Instant Add Column 的方案 ...

  4. mysql新增字段位置_图解MySQL | [原理解析] MySQL 为表添加列 是怎么quot;立刻quot;完成的...

    在上一期图解 图解MySQL | MySQL DDL为什么成本高?中,我们介绍了: 传统情况下,为表添加列需要对表进行重建 腾讯团队为 MySQL 引入了 Instant Add Column 的方案 ...

  5. 大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书) - 电子书下载 -(百度网盘 高清版PDF格式)...

    大规模分布式存储系统:原理解析与架构实战 (大数据技术丛书)-杨传辉 在线阅读                   百度网盘下载(89hy) 书名:大规模分布式存储系统:原理解析与架构实战 (大数据技 ...

  6. Mysql原理解析 - 索引文件的存储结构

    Mysql原理解析 - 索引文件的存储结构 前言 局部性原理 磁盘预读 索引是什么? 1. MSQL为什么索引选择B+树? 1.1 哈希表hash 简介: 局限性: 1.2 二叉树 简介: 局限性: ...

  7. 《分布式存储系统:原理解析与架构实战》.pdf

    关注"Java后端技术全栈" 回复"面试"获取全套面试资料 分布式存储系统,将数据分散存储在多台独立的设备上. 传统的网络存储系统采用集中的存储服务器存放所有数 ...

  8. mysql 写磁盘_图解MySQL | [原理解析] MySQL insert 语句的磁盘写入之旅

    作者及简介: 黄 炎,爱可生首席技术官: 王 悦,爱可生研发团队成员,负责数据库管理平台相关项目的开发和故障排查,好奇 MySQL 技术原理及各类数据库实现方案. 本文来源:转载自公众号-图解 MyS ...

  9. 【Tomcat 】Tomcat 架构原理解析到架构设计借鉴

    Tomcat 发展这么多年,已经比较成熟稳定.在如今『追新求快』的时代,Tomcat 作为 Java Web 开发必备的工具似乎变成了『熟悉的陌生人』,难道说如今就没有必要深入学习它了么?学习它我们又 ...

最新文章

  1. 区块链学堂:区块链引子
  2. 他们用卷积神经网络,发现了名画中隐藏的秘密
  3. JAVA语法——经典题目01
  4. 女朋友掉水里,各类程序猿怎么救?
  5. H264 解码耗时分析
  6. 自定义GridView 介绍
  7. 将毫秒转换_上海科大:超强电镜技术!原子级分辨率,毫秒级可视化
  8. Android开发之点九图的制作说明
  9. SSIS:错误信息总结
  10. 打造IOS移动渗透测试平台
  11. Python实现邮件发送
  12. linux 邮件服务器 并给外网发送邮件,Linux下判断公网IP是否改变,并发送邮件通知...
  13. 用 AlphaGo Zero 参加阿里巴巴全球调度算法大赛
  14. Java 函数式编程的妙用
  15. Google(谷歌)博客搜索中文测试版发布
  16. OSChina 周一乱弹 —— 老夫聊发少年狂
  17. 华为mate30和mate30pro的区别
  18. WIN32 完整的开发流程
  19. HQChart使用教程30-K线图如何对接第3方数据20-信息地雷公告数据
  20. 初尝Windows8预览版

热门文章

  1. python 写的一个按键精灵工具 特别方便 喜欢拿去
  2. nginx 屏蔽 Server信息或nginx版本
  3. ROS中rviz显示运动轨迹的常见方法
  4. python实现情感分析流程-【转】用python实现简单的文本情感分析
  5. ABP入门教程(六)ABP支持DataTable
  6. 判断推理之一一对应题
  7. Android 内存优化实操,定位内存问题
  8. Blender——苹果的纹理绘制
  9. 注册企业需要怎么样的办公地址才可以?
  10. 动漫网站和AI人物代码系统毕业设计,人物转动漫人物系统设计与实现,动漫人物特效系统论文毕设作品参考