了解MySQL必须记住它的架构图,以及MySQL数据库由SQL接口、解析器、优化、缓存和存储引擎





1个连接器是指用不同语言与SQL的交互。

2管理服务设施:系统管理和控制的工具

3连接池:连接池。

缓冲区用户连接、线程处理和其他需要缓存的管理

4 SQL接口:SQL接口。

接受用户的SQL命令并返回用户需要查询的结果。

5解析器:解析器。

SQL命令传递给解析器和验证被解析器解析。解析器是通过lex和yacc实现的,是一个很长的脚本。

主要功能:

将SQL语句分解为数据结构,并将此结构传递给后续步骤,随后对SQL语句的交付和处理基于此结构。

如果分解组合中有错误,说明SQL语句是不合理的。

6优化器:查询优化器。

SQL语句将使用查询优化器在查询前优化查询。

它可以通过一个例子来理解:选择UID,从用户性别= 1名;

这个SELECT查询是根据WHERE语句选择的,而不是首先搜索所有表,然后再进行性别过滤。

这个选择查询预计基于UID和名称的属性,而不是过滤所有的属性后把它拿出来。

加入这两个查询条件来生成最终的查询结果

7缓存和缓冲区:查询缓存。

如果查询缓存有命中查询结果,则查询可以直接进入缓存中的查询以获取数据。

这种缓存机制是由一系列小的缓存组成的,例如,表缓存、记录缓存、密钥缓存、权限缓存等等。

8发动机:存储引擎。

存储引擎是MySQL中处理文件的一个特殊子系统,也是MySQL中最有特色的地方之一。

MySQL的存储引擎是plug-in.it定制基于由MySQL AB公司提供的文件访问层的一个抽象接口文件访问机制(这种访问机制称为存储引擎)

有许多种类的存储引擎,以及每个存储引擎的优势是不同的,最常用的MyISAM,InnoDB,BDB

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

InnoDB支持事务,提供了行级锁,它也被广泛使用。
MySQL还支持自定义存储引擎,甚至库中的另一个表使用不同的存储引擎,所有这些都是允许的。