基于MySQL体系结构的分析


Posted in PHP onMay 02, 2013

了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的

 

基于MySQL体系结构的分析 

1 Connectors指的是不同语言中与SQL的交互

2 Management Serveices & Utilities: 系统管理和控制工具

3 Connection Pool: 连接池。

管理缓冲用户连接,线程处理等需要缓存的需求

4 SQL Interface: SQL接口。

接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface

5 Parser: 解析器。

SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。

主要功能:

a . 将SQL语句分解成数据结构,并将这个结构传递到后续步骤,以后SQL语句的传递和处理就是基于这个结构的 

b.  如果在分解构成中遇到错误,那么就说明这个sql语句是不合理的

6 Optimizer: 查询优化器。

SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。

用一个例子就可以理解: select uid,name from user where gender = 1;

这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤

这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤

将这两个查询条件联接起来生成最终查询结果

7 Cache和Buffer: 查询缓存。

如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。

这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

8 Engine :存储引擎。

存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。

Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)

现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB,BDB

默认下MySql是使用MyISAM引擎,它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务。

InnoDB支持事务,并且提供行级的锁定,应用也相当广泛。 
Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。

PHP 相关文章推荐
PHP编程中字符串处理的5个技巧小结
Nov 13 PHP
纯真IP数据库的应用 IP地址转化成十进制
Jun 14 PHP
PHP之COOKIE支持详解
Sep 20 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
php 浮点数比较方法详解
May 05 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
Laravel中使用Queue的最基本操作教程
Dec 27 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
PHP封装类似thinkphp连贯操作数据库Db类与简单应用示例
May 08 PHP
php使用json-schema模块实现json校验示例
Sep 28 PHP
PHP程序级守护进程的实现与优化的使用概述
May 02 #PHP
基于Zookeeper的使用详解
May 02 #PHP
关于尾递归的使用详解
May 02 #PHP
基于Zend的Config机制的应用分析
May 02 #PHP
Zend的Registry机制的使用说明
May 02 #PHP
Zend的MVC机制使用分析(二)
May 02 #PHP
Zend的MVC机制使用分析(一)
May 02 #PHP
You might like
PHP防止post重复提交数据的简单例子
2014/06/07 PHP
PHP使用GD库输出汉字的方法【测试可用】
2016/11/10 PHP
PHP实现在windows下配置sendmail并通过mail()函数发送邮件的方法
2017/06/20 PHP
JavaScript与函数式编程解释
2007/04/27 Javascript
javascript 跳转代码集合
2009/12/03 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
JS递归遍历对象获得Value值方法技巧
2016/06/14 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
详解webpack编译速度提升之DllPlugin
2019/02/05 Javascript
微信小程序实现单列下拉菜单效果
2019/04/25 Javascript
layui数据表格重载实现往后台传参
2019/11/15 Javascript
[01:38]2018DOTA2亚洲邀请赛主赛事第二日现场采访 神秘商人痛陈生计不易
2018/04/05 DOTA
[01:09:20]NB vs NAVI Supermajor小组赛A组 BO3 第二场 6.2
2018/06/03 DOTA
python 域名分析工具实现代码
2009/07/15 Python
Windows系统下使用flup搭建Nginx和Python环境的方法
2015/12/25 Python
Django对models里的objects的使用详解
2019/08/17 Python
Django REST Framework之频率限制的使用
2019/09/29 Python
python 实现将list转成字符串,中间用空格隔开
2019/12/25 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
如何使用Django Admin管理后台导入CSV
2020/11/06 Python
Python使用paramiko连接远程服务器执行Shell命令的实现
2021/03/04 Python
英国时尚女装购物网站:Missguided
2018/08/23 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
应届生妇产科护士求职信
2013/10/27 职场文书
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
品牌服务方案
2014/06/03 职场文书
校园活动策划方案
2014/06/13 职场文书
单位员工收入证明样本
2014/10/09 职场文书
幼儿园校园小喇叭广播稿
2014/10/17 职场文书
公司承诺函范文
2015/01/21 职场文书
先进教师个人总结
2015/02/11 职场文书
道歉信怎么写
2015/05/12 职场文书
催款律师函范文
2015/05/27 职场文书
2015年教务主任工作总结
2015/07/22 职场文书
Python各协议下socket黏包问题原理
2022/04/12 Python