mysql工作流程
1.connector sql交互语言,php,java等
2.系统管理和控制工具
3.连接池 管理缓冲用户连接,线程处理等需要缓存的需求
4.Sql接口接受sql命令,返回查询结果
5.解释器 sql命令传递到解析器进行解析和验证
分解sql语句成数据结构后边语句的传递都基于这个结构
解析过程中验证sql的合法性,解析出错不继续解析
6.查询优化器
Sql语句解析后进行查询之前会进行查询优化,(产生多种执行计划,选择最优)
7.cache和buffer 查询缓存 查询缓存有命中的查询结果就直接去缓存中取数据
这种缓存机制由一系列小缓存组成 比如表缓存 key缓存 权限缓存
8.engine存储引擎
和文件打交道的子系统,也是具体进行数据存储和取出数据的地方 插件式
的文件访问机制
9.数据库一般是由其他编程语言通过sql调用,mysql处理并返回结果
首先通过connector进行交互,请求会暂存connection pool由管理器管理
请求从等待队列进入处理队列后,管理器会把请求丢给sql接口
Sql接口收到请求后,进行hash处理并和缓存结果进程对比,通过匹配就返回结果
否则丢给解释器-》解析成数据结构验证sql合法-》优化器优化查询计划-》交给存储引擎到磁盘获取数据,返回给程序
10.缓存查询数据
存储引擎处理完数据返回给程序时还会保留一份数据到缓存中以便处理下次相同的请求
执行语句+执行结果-》hash 保存到cache
11.cache和buffer区别
Buffer是写缓存 cache是读缓存
mysql工作流程的更多相关文章
- Mysql工作流程分析
Mysql工作流程图 工作流程分析 1. 所有的用户连接请求都先发往连接管理器 2. 连接管理器 (1)一直处于侦听状态 (2)用于侦听用户请求 3. 线程管理器 (1)因为每个用户 ...
- ecshop 工作流程加载配置介绍
ecshop 工作流程加载配置介绍 分类: ecshop2014-09-14 09:36 729人阅读 评论(2) 收藏 举报 模板引擎工作流 这里简单介绍下echsop工作流程: 首先,你会发现一般 ...
- mysql 执行流程
mysql 执行流程 我们可以人为的把mysql 的主要功能分为如下模块. 1.初始化模块 mysql启动的时候执行初始化工作,如读取配置文件,分配一些全局变量(sql_model,catch buf ...
- Hibernate工作流程
Hibernate创建步骤 (五大核心接口:Configuration/SessionFactory/Session/Transaction/Query) 1.新建工程,导入需要的jar包. 2.利用 ...
- docker工作流程
Docker提供一种方法在容器中运行安全隔离的应用程序,应用程序与所有依赖项和库一起打包在容器中.因为你的应用程序总是可以使用它在构建镜像中期望的环境运行,测试和部署比以往任何时候都更简单,因为你的构 ...
- Mybatis第一篇【介绍、快速入门、工作流程】
什么是MyBatis MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为 ...
- OpenStack各组件逻辑关系、通信部署关系及工作流程
一. OpenStack组件之间的逻辑关系 OpenStack 是一个不断发展的系统,所以 OpenStack 的架构是演进的,举个例子: E 版本有5个组件 Compute 是 Nova:Imag ...
- 7.hdfs工作流程及机制
1. hdfs基本工作流程 1. hdfs初始化目录结构 hdfs namenode -format 只是初始化了namenode的工作目录 而datanode的工作目录是在datanode启动后自己 ...
- mysql工作原理(网络搜索整理的)
原文网址:Mysql 工作原理 原文网址:MySQL运行原理与基础架构 mysql基本用法原文网址:MySQL(一):基本原理 SQL 语句执行过程 数据库通常不会被直接使用,而是由其他编程语言通过S ...
随机推荐
- CF 916
题解: 首先看题目 A题看不懂... 花了5分钟才做出来 还wa了 B题 一看好像是堆+位运算? 然后A了样例 C题 wa了好激发 似乎加边加错了 然后看D,似乎是可持久化平衡树? 我又不会... E ...
- 【Html 学习笔记】第八节——表单实践
列举一些实践的例子: 1.点击按钮后跳转: <html> <body> <form action="1.html"> First <inp ...
- 二进制包形式安装mysql5.7.17
mysql5.7与mysql5.5的安装方式有些区别,如果按照5.5的方式来安装5.7就会有很多报错信息,下面介绍mysql5.7.17的二进制安装方式. 首先安装依赖包: yum -y instal ...
- 【dlbook】优化
[神经网络优化的挑战] 一.病态: 虽然学习率很小,而且梯度大,但是由于Hessian阵的病态,二次项比一次项还要大,梯度下降事实上并不一定能下降,反而有可能上升.因此需要将学习率调低. 表现:梯度很 ...
- vue.js 源代码学习笔记 ----- core array.js
/* * not type checking this file because flow doesn't play well with * dynamically accessing methods ...
- Function.bind 方法
this.num = 9; var mymodule = { num: 81, getNum: function() { return this.num; } }; module.getNum(); ...
- 如何将dom4j的jar包放到java项目中
---恢复内容开始--- 如果你建的是java project项目的话,那就通过Myeclispe中的右键你的项目名称,选择build path ->config build path... 然 ...
- C#单元测试Nunit小结(20141018)
1. 下载和安装Nunit工具: NUnit是一款堪与JUnit齐名的开源的回归测试框架,供.net开发人员做单元测试之用,可以从www.nunit.org网站上免费获得,然后在系统中安装: 2. 在 ...
- iOS开发CocoaPods使用
一.为什么用CocoaPods iOS开发时,项目中会引用许多第三方库,CocoaPods(https://github.com/CocoaPods/CocoaPods)可以用来方便的统一管理这些第三 ...
- mongo 指令
简单查询1: db.find( {}, {} ) 第一个{} 是条件,第二个{}是需要那些属性, db.find( {} ) 第二个{}没有,代表返回所有属性 db.find( {age: ...