基于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 相关文章推荐
综合图片计数器
Oct 09 PHP
php中计算中文字符串长度、截取中文字符串的函数代码
Aug 09 PHP
php 生成唯一id的几种解决方法
Mar 08 PHP
php session劫持和防范的方法
Nov 12 PHP
php导出word文档与excel电子表格的简单示例代码
Mar 08 PHP
ThinkPHP中自定义目录结构的设置方法
Aug 15 PHP
php实现获取文件mime类型的方法
Feb 11 PHP
php实现图片等比例缩放代码
Jul 23 PHP
浅谈php fopen下载远程文件的函数
Nov 18 PHP
PHP实现对数组分页处理实例详解
Feb 07 PHP
详谈php ip2long 出现负数的原因及解决方法
Apr 05 PHP
PHP性能测试工具xhprof安装与使用方法详解
Apr 29 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
《一拳超人》埼玉一拳下去,他们存在了800年毫无意义!
2020/03/02 日漫
十大感人催泪爱情动漫 第一名至今不忍在看第二遍
2020/03/04 日漫
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
浅析Yii2 GridView 日期格式化并实现日期可搜索教程
2016/04/22 PHP
Laravel框架实现的上传图片到七牛功能详解
2019/09/06 PHP
PHP实现微信公众号验证Token的示例代码
2019/12/16 PHP
实现JavaScript中继承的三种方式
2009/10/16 Javascript
加载 Javascript 最佳实践
2011/10/30 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jQuery定义插件的方法
2015/12/18 Javascript
深入浅析JavaScript中的作用域和上下文
2016/03/26 Javascript
jquery判断类型是不是number类型的实例代码
2016/10/07 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
Javascript创建类和对象详解
2017/05/31 Javascript
jfinal与bootstrap的登出实战详解
2017/11/27 Javascript
vue2.0 computed 计算list循环后累加值的实例
2018/03/07 Javascript
解决Vue-cli npm run build生产环境打包,本地不能打开的问题
2018/09/20 Javascript
Vue项目总结之webpack常规打包优化方案
2019/06/06 Javascript
[03:17]史诗级大片应援2018DOTA2国际邀请赛 致敬每一位坚守遗迹的勇士
2018/07/20 DOTA
Python MD5文件生成码
2009/01/12 Python
Python多线程和队列操作实例
2015/06/21 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python 模板引擎的注入问题分析
2017/01/01 Python
Python编程实现二分法和牛顿迭代法求平方根代码
2017/12/04 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
使用Python实现画一个中国地图
2019/11/23 Python
利用Python脚本批量生成SQL语句
2020/03/04 Python
庆元旦广播稿
2014/02/10 职场文书
农林环境专业求职信
2014/03/13 职场文书
电子商务求职信
2014/06/15 职场文书
公务员四风问题对照检查材料整改措施
2014/09/26 职场文书
党员个人整改措施
2014/10/24 职场文书
2015新年联欢晚会开场白
2014/12/14 职场文书
文明家庭事迹材料
2014/12/20 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书