高性能MySQL之架构与历史(1)

MySQL架构与历史

MySQL逻辑架构

 

第一层:mysql客户端,负责和mysql服务器连接处理、认证授权、安全、线程处理等。

第二层:大多数mysql的核心功能都在这一层,包括查询解析、分析、优化、查询缓存以及所有的内置函数(如:日期、时间的函数等),所有夸存储引擎的功能都在这一层实现:存储过程、触发器、视图等。

第三层:包含存储引擎,存储引擎负责mysql中数据的存储、提取、锁机制等。

注:存储引擎不会解析sql。单InnoDB是一个列外,他会解析外键定义,因为mysql服务器本身没有实现该功能。

连接管理与安全性

     每个客户端链接都会在服务器进程中拥有一个线程。这个链接的查询只会在这个单独的线程中执行,该线程只能轮流在某个CPU核心CPU中运行。

Mysql5.5版本支持线程池插件,可以使用池中少量的线程来服务大量的链接。

    当客户端连接Mysql服务器时,会对其进行验证,验证成功后,服务器会继续验证是否具有某个查询的权限。

优化与执行

1.MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询、决定表的读取顺序,以及选择合适的索引等。

2.优化器并不关心表用的是什么存储引擎,但存储引擎对于优化查询是有影响的。

3.对于select语句,在解析查询之前,首页会在查询缓存中检查,如果能在查询缓存中检索到结果,那么就不会在进行查询解析、分析、优化和执行的整个过程,而是直接从查询缓存中检查的结果集返回。

原文地址:https://www.cnblogs.com/tongluo/p/5665774.html