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 ...
随机推荐
- Disruptor快速入门
在JDK的多线程与并发库一文中, 提到了BlockingQueue实现了生产者-消费者模型 BlockingQueue是基于锁实现的, 而锁的效率通常较低. 有没有使用CAS机制实现的生产者-消费者? ...
- 020——VUE中变异方法push的留言版实例讲解
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- [Eclipse]Eclipse快捷键
查看一个方法被谁调用:选中方法名字,Search-->Reference-->Workspace
- 使用 Express 实现一个简单的 SPA 静态资源服务器
背景 限制 SPA 应用已经成为主流,在项目开发阶段产品经理和后端开发同学经常要查看前端页面,下面就是我们团队常用的使用 express 搭建的 SPA 静态资源服务器方案. 为 SPA 应用添加入口 ...
- Spring整合Hibernate:1、annotation方式管理SessionFactory
1.在applicationContext.xml文件中初始化SessionFactory(annotation方式) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 ...
- location.host 与 location.hostname 的区别
JavaScript 中,大多数情况下,我们不会发现 location.host 与 location.hostname 的区别,因为大多数情况下,我们的网页用的是 80 端口. 他们的区别: loc ...
- CUDA Samples: ripple
以下CUDA sample是分别用C++和CUDA实现的生成的波纹图像,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第五章,各个文件内容如下 ...
- CF 382C
http://codeforces.com/problemset/problem/382/C 读完题立刻知道怎么做,然后分类讨论到吐血,写挂了,巨蠢 #include <iostream> ...
- [转载][QT][SQL]sql学习记录6_sqlite Autoincrement(自动递增)
转载自:定义以及示例请见 : http://www.runoob.com/sqlite/sqlite-autoincrement.html SQLite Autoincrement(自动递增) SQL ...
- Android学习笔记之Android Studio下创建menu布局文件
1.创建menu文件夹 Android Studio项目中如果没有menu文件夹,在res文件夹右键,new-Android resource directory: 则会弹出下图对话框,在Resour ...