①建立连接(Connectors&Connection Pool),通过客户端/服务器通信协议与MySQL建立连
接。MySQL 客户端与服务端的通信方式是 “ 半双工 ”。对于每一个 MySQL 的连接,时刻都有一个
线程状态来标识这个连接正在做什么。
通讯机制:
全双工:能同时发送和接收数据,例如平时打电话。
半双工:指的某一时刻,要么发送数据,要么接收数据,不能同时。例如早期对讲机
单工:只能发送数据或只能接收数据。例如单行道
线程状态:
show processlist; //查看用户正在运行的线程信息,root用户能查看所有线程,其他用户只能看自
己的
id:线程ID,可以使用kill xx;
user:启动这个线程的用户
Host:发送请求的客户端的IP和端口号
db:当前命令在哪个库执行
Command:该线程正在执行的操作命令
Create DB:正在创建库操作
Drop DB:正在删除库操作
Execute:正在执行一个PreparedStatement
Close Stmt:正在关闭一个PreparedStatement
Query:正在执行一个语句
Sleep:正在等待客户端发送语句
Quit:正在退出
Shutdown:正在关闭服务器
Time:表示该线程处于当前状态的时间,单位是秒
State:线程状态
Updating:正在搜索匹配记录,进行修改
Sleeping:正在等待客户端发送新请求
Starting:正在执行请求处理
Checking table:正在检查数据表
Closing table : 正在将表中数据刷新到磁盘中
Locked:被其他查询锁住了记录
Sending Data:正在处理Select查询,同时将结果发送给客户端
Info:一般记录线程执行的语句,默认显示前100个字符。想查看完整的使用show full
processlist;
②查询缓存(Cache&Buffer),这是MySQL的一个可优化查询的地方,如果开启了查询缓存且在
查询缓存过程中查询到完全相同的SQL语句,则将查询结果直接返回给客户端;如果没有开启查询
缓存或者没有查询到完全相同的 SQL 语句则会由解析器进行语法语义解析,并生成“解析树”。
缓存Select查询的结果和SQL语句
执行Select查询时,先查询缓存,判断是否存在可用的记录集,要求是否完全相同(包括参
数值),这样才会匹配缓存数据命中。
即使开启查询缓存,以下SQL也不能缓存
查询语句使用SQL_NO_CACHE
查询的结果大于query_cache_limit设置
查询中有一些不确定的参数,比如now()
show variables like ‘%query_cache%’; //查看查询缓存是否启用,空间大小,限制等
show status like ‘Qcache%’; //查看更详细的缓存参数,可用缓存空间,缓存块,缓存多少等
③解析器(Parser)将客户端发送的SQL进行语法解析,生成"解析树"。预处理器根据一些MySQL
规则进一步检查“解析树”是否合法,例如这里将检查数据表和数据列是否存在,还会解析名字和别
名,看看它们是否有歧义,最后生成新的“解析树”。
④查询优化器(Optimizer)根据“解析树”生成最优的执行计划。MySQL使用很多优化策略生成最
优的执行计划,可以分为两类:静态优化(编译时优化)、动态优化(运行时优化)。
等价变换策略
5=5 and a>5 改成 a > 5
a < b and a=5 改成b>5 and a=5
基于联合索引,调整条件位置等
优化count、min、max等函数
InnoDB引擎min函数只需要找索引最左边
InnoDB引擎max函数只需要找索引最右边
MyISAM引擎count(*),不需要计算,直接返回
提前终止查询
使用了limit查询,获取limit所需的数据,就不在继续遍历后面数据
in的优化
MySQL对in查询,会先进行排序,再采用二分法查找数据。比如where id in (2,1,3),变
成 in (1,2,3)
⑤查询执行引擎负责执行 SQL 语句,此时查询执行引擎会根据 SQL 语句中表的存储引擎类型,以
及对应的API接口与底层存储引擎缓存或者物理文件的交互,得到查询结果并返回给客户端。若开
启用查询缓存,这时会将SQL 语句和结果完整地保存到查询缓存(Cache&Buffer)中,以后若有
相同的 SQL 语句执行则直接返回结果。
如果开启了查询缓存,先将查询结果做缓存操作
返回结果过多,采用增量模式返回

最后分享课程教学vx:xgj8081
最后分享课程教学vx:xgj8081最后分享课程教学vx:xgj8081
最后分享课程教学vx:xgj8081最后分享课程教学vx:xgj8081

每个人的能力不一样!喜欢的讲师风格不一样!请根据目录选择合适的课程!!!如需试看请V联系。今年热卖马士兵 拉钩!!!请自行衡量好价值!老课便宜!新课贵!!!新课大多是加密文件授权专用播放器观看 只支持淘宝 支付宝!**

1**:**拉勾Java高级工程师高薪训练营 (2021年2月左右完结超级推荐 年度热卖 Hot)

2**:**网易-微专业Java高级开发工程师 (完结Hot)

3**:**黑马-Java架构师实战训练营 (2021年2月左右完结Hot)

4**:马士兵-【MCA】Java互联网高级架构师(100多门课包含高级架构师6个班)**(在更新)

5**:**图灵-Java架构师(第二期,第三期,第四期)(四期同步更新Hot—四期是和鲁班的讲师一起讲的!)

6**:**享学-Java架构师(第二期,第三期)(三期同步更新Hot)

7**:**鲁班-Java架构师(第二期,第三期)(二期完结 三期断更Hot—鲁班被图灵收购!!鲁班三期官网停更)

8**:**咕泡-Java架构师(第二期,第三期 第四期)(完结Hot)

9**:**M课-Java架构师成长直通车(完结)

10**:**极客-Java架构师训练营(同步更新)

11**:**开课吧-JavaEE企业级分布式高级架构师第十期(完结)

12**:**极客-架构师实战营P9(李运华)(新款 —同步更新)

13**:**网易微专业Java高级架构师P7 2021新版(完结2021年2月左右完结)

14**:**网易微专业Java开发工程师P6 2021新版(完结2021年2月左右完结)

15**:**极客Java进阶训练 (完结)

16**:**M课-Java架构师-十项全能 (更新中)

17**:**奈学Java资深研发工程师 (有在更 也有已完结)

18**:**奈学P7架构师 (有在更 也有已完结)

19**:**奈学百万架构师 (有在更 也有已完结)

20**:**开课吧-百万架构师第十期(P8)(更新中)

21:极客-小马哥项目实战营 (在更新)

22:开课吧-Java架构师P7进阶之路-技术专家(新课-在更新)

MySQL运行机制-从入门到京东相关推荐

  1. Java 源码剖析(16)--浅谈MySQL 的运行机制

    MySQL 的运行机制 1) MySQL 是如何运行的 2) 查询缓存的利弊 3)如何选择数据库引擎 4)InnoDB 自增主键 5)小结 1) MySQL 是如何运行的 MySQL 的执行流程是这样 ...

  2. MySQL索引机制-图灵教育诸葛老师

    索引是帮助MySql高效获取数据的排好序的数据结构 在上图中,如果想要查找89使用select * from table where col2=89的话,需要遍历整个表,需要6次查询才能找到 如下图, ...

  3. 大厂面试官必问的Mysql锁机制

    前言 前几天有粉丝和我聊到他找工作面试大厂时被问的问题,因为现在疫情期间,找工作也特别难找.他说面试的题目也比较难,都偏向于一两年的工作经验的面试题. 他说在一面的时候被问到Mysql的面试题,索引那 ...

  4. 浅谈SQL Server内部运行机制

    原文:浅谈SQL Server内部运行机制 对于已经很熟悉T-SQL的读者,或者对于较专业的DBA来说,逻辑的增删改查,或者较复杂的SQL语句,都是非常简单的,不存在任何挑战,不值得一提,那么,SQL ...

  5. 探索 OSGi 框架的组件运行机制

    在目前的 Java 开发平台中,对于组件开发过程,比如打包.部署和验证等,并没有一个统一的标准.正因如此,许多 Java 项目,例如 JBoss 和 Net Beans,都拥有一套自定义的组件开发规范 ...

  6. 聊聊大厂面试官必问的 MySQL 锁机制

    前言 前几天有粉丝和我聊到他找工作面试大厂时被问的问题,因为现在疫情期间,找工作也特别难找.他说面试的题目也比较难,都偏向于一两年的工作经验的面试题. 他说在一面的时候被问到Mysql的面试题,索引那 ...

  7. 天龙源码框架分析_MySQL8-InnoDB总体架构和运行机制的系统分析(上)

    1. 前文回顾:四个阶段和两种方法 首先让我们回顾下,在上一篇文章介绍的MySQL8代码分析的四个阶段和两种方法. 四个阶段: 借鉴瀑布式软件开发流程,我们将从熟悉MySQL的使用和运维,到吃透MyS ...

  8. php底层运行机制与原理

    php底层运行机制与原理 1 PHP的设计理念及特点 多进程模型:由于PHP是多进程模型,不同请求间互不干涉,这样保证了一个请求挂掉不会对全盘服务造成影响,当然,时代发展,PHP也早已支持多线程模型. ...

  9. 探究php底层运行机制

    本文转载自:http://www.myext.cn/Article/921.html 概要 简介 先看看下面这个过程: 我们从未手动开启过PHP的相关进程,它是随着Apache的启动而运行的:  ph ...

最新文章

  1. Windows 10 下 Anaconda3 (Python 3.8) 配置 OpenCV-4.4.0
  2. Python协同过滤推荐算法(Collaborative Filtering)2.相似度的计算,相似度计算方法
  3. C#中字符串的内存分配与驻留池
  4. 比乐高便宜十倍!4合1电动遥控积木玩法百变
  5. updatebyprimarykeyselective怎么更新某个字段为null_一千个不用 Null 的理由
  6. 《UG NX10中文版完全自学手册》——2.4 布局
  7. python类方法_Python类方法
  8. mac解压jar文件
  9. 5万成员丨CSDN 大数据领域网红社区!
  10. 关于如何用centos7和阿里云服务器去创建一个网站
  11. 通过关键词爬取百度图片——Python爬虫
  12. 【问题记录】Parallels Desktop黑屏无法进入Windows系统
  13. win7一直安装并更新计算机,win7系统更新时一直正在等待安装重启不更新的恢复方案...
  14. 面对问题时如何解决呢---pytharm不能进行单步调试
  15. 求职 个人简历 手机软件开发工程师
  16. mysql认证题库_MySQL 8 OCP(1Z0-908)认证考试题库原题(第11题)
  17. 推荐7个Python自动化办公免费学习资源~(数据分析、Python、VBA等)
  18. 服务器win2003虚拟内存设置,winxp、win2003最正确的设置虚拟内存方法WEB服务器 -电脑资料...
  19. 西门子200高数计数器读取增量式编码器数值
  20. 基于触摸屏的LED驱动电路设计

热门文章

  1. Hive练习-面试题
  2. idea连接mysql数据库下载驱动失败
  3. TensorFlow Object Detection API Custom Object Hangs On
  4. Vue3 Application died in status LOADING_SOURCE_CODE: You need to export the functional lifecycles in
  5. ubuntu 18.04 VSCode沙绿色主题设置
  6. 关于节日文化的HTML网页设计-----二十四节气
  7. 兄弟hl3150cdn打印测试页6_兄弟3150CDN彩色激光打印机
  8. 如何放大图片不模糊?教你一招
  9. Typora保存图片,上传图片,分享图片,图片丢失
  10. 新闻推荐笔记(2):Embedding-based News Recommendation for Millions of Users