基于MySQL体系结构的分析
了解MySql必须牢牢记住其体系结构图,Mysql是由SQL接口,解析器,优化器,缓存,存储引擎组成的
1Connectors指的是不同语言中与SQL的交互
2ManagementServeices&Utilities:系统管理和控制工具
3ConnectionPool:连接池。
管理缓冲用户连接,线程处理等需要缓存的需求
4SQLInterface:SQL接口。
接受用户的SQL命令,并且返回用户需要查询的结果。比如selectfrom就是调用SQLInterface
5Parser:解析器。
SQL命令传递到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。
6Optimizer:查询优化器。
SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。
用一个例子就可以理解:selectuid,namefromuserwheregender=1;
这个select查询先根据where语句进行选取,而不是先将表全部查询出来以后再进行gender过滤
这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤
将这两个查询条件联接起来生成最终查询结果
7Cache和Buffer:查询缓存。
如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。
这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等
8Engine:存储引擎。
存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。
Mysql的存储引擎是插件式的。它根据MySqlAB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)
现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB,BDB
默认下MySql是使用MyISAM引擎,它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务。
InnoDB支持事务,并且提供行级的锁定,应用也相当广泛。
Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。
相关文章
- MySQL Error number: MY-010766; Symbol: ER_DD_CANT_FETCH_TABLE_DATA; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL测试:探索基于SQL语句的可能性(mysql测试语句)
- MySQL Status Innodb_buffer_pool_wait_free 数据库状态作用意思及如何正确
- MySQL: 删除索引的步骤及其重要性(mysql删除索引)
- 基于PHP的MySQL访问方式(php访问mysql)
- MySQL表字段查询:一次完整的分析流程(mysql表字段查询)
- 深入浅出MySQL数据库分析(mysql分析)
- 解决MySQL中重复数据的方法(mysql重复的数据)
- MySQL破解版:不受限制的下载体验(mysql破解版下载)
- 建立网站与MySQL数据库的联系(网站连接mysql数据库)
- MySQL数据库性能优化:深入分析与实践(mysql数据库性能分析)
- 深入理解MySQL中的数值类型(mysql的数值类型)
- MySQL中三表联查实战(mysql三表查询)
- 办法解决MySQL数据库乱码问题(mysql乱码解决)
- 设置MySQL中如何设置创建函数的权限(mysql创建函数权限)
- MySQL 删表卡死:案例分析与解决方案(mysql删表卡死)
- MySQL事务 了解隔离级别的重要性(mysql事务的隔离级别)
- MySQL条件排序:优化数据查询的关键(mysql条件排序)
- MySQL 并发读取的优化方法(mysql并发读取)
- MySQL 相似数据库管理软件的比较分析(mysql相似)
- MySQL中No常见错误分析与解决方法(mysql中no)
- C语言从MySQL数据库中取值(c 从mysql取值)
- 借助MySQL,构建一站式CRM管理系统(crm mysql)
- CMD一键登录MySQL 注意了(cmd打开登陆mysql)
- 实现高可用性的AWS与MySQL复制(aws mysql 复制)
- 学习Ajax基于MySQL的实例实践(ajax实例 mysql)
- ADB搭建Mysql分析应用系统(adb分析型mysql)
- MySQL优化如何进行表的分析与优化(mysql中分析 优化表)
- MySQL数据库多视角分析(mysql不同数据库视图)
- MySQL存储问题无法存储字母字符(mysql不能存字母)