一.mysql的独特之处
mysql的不同之处在于能够在不同的场景中应用并发挥好作用,带来选择上的困难。但是足够灵活,能够适应高要求的的环境,例如web的类应用。通过配置可以适应不同的硬件,可以支持不同的数据类型。而最最重要、最与众不同的是他的存储引擎架构,这种架构的设计将 查询处理、系统任务、数据的存储/提取相分离,这样使用的时候可以根据性能,特性,以及其他需求来选择数据存储的方式。
二.逻辑架构图
三.连接管理和安全
服务器缓存连接的线程,并对客户端登陆用户进行验证,登陆成功后验证其用户权限(innoDB是例外可以解析外键定义,因为mysql服务器没有实现该功能)
四.优化与执行
Mysql会解析查询,并创建内部数据结构(解析树),然后对其进行优化,包括重写查询,决定表的读取顺序,以及选择合适的索引。用户可以通过特殊的关键字来提示优化器,影响它的决策过程。也可以请求优化器的解释优化过程的各个因素,是用户可以知道
服务器是如何进行优化决策的,并提供一个参考基准,便于用户重构查询和schema.优化器不关心是什么样的存储引擎,但是存储引擎对于优化查询是有影响的。优化器会请求存储引擎提供容量或者某个具体操作的开销信息,以及表数据的统计信息等。例如,某些存储引擎的某些特定的索引,可能对于一些特定的查询有优化。
对于select语句,在解析查询之前,服务器会先检查查询缓存,如果能够在其中找到对应的查询,服务器就不必在执行查询解析,优化和执行的过程,而是直接返回查询缓存中的结果集。