码迷,mamicode.com
首页 > 数据库 > 详细

《高性能MySQL》读书笔记--MySQL逻辑架构

时间:2015-05-04 13:53:56      阅读:138      评论:0      收藏:0      [点我收藏+]

标签:mysql   逻辑架构   查询缓存   线程   存储引擎   

 一、MySQL逻辑架构
MySQL最重要的、最与从不同的特性是它的存储引擎架构,这种构架的设计将查询处理及其它系统任务和数据的存储/提取相分离。

技术分享

第一层,服务层,最上层的服务并不是MySQL独有的,大多数基于网络的客户端/服务端的工具或者服务都有类似的架构。主要为请求做连接处理,授权认证,安全等。

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

第三层,存储引擎,存储引擎负责MySQL中数据的存储和提取。服务器通过API与存储引擎进行通信。这些接口屏蔽了不同存储引擎之间的差异,使得这些差异对上层的查询过程透明。存储引擎不会去解析SQL,不同存储引擎之间也不会相互通信,而只是简单地响应上层服务的请求。

 
 连接管理与安全性(第一层 服务层)
 
 > 连接流程

技术分享

 Δ 每个连接的查询都在一个进程中的线程完成。

 Δ 服务器负责缓存线程,所以服务层不需要为每个新建的连接创建或者销毁线程(可以使用线程池)。

> 认证流程

1、当客户端(应用)连接到MySQL服务器时,服务器需要对其进行认证。认证基于用户名、原始主机信息和密码。如果使用了安全套接字的方式连接,还可以使用X.509证书认证。

2、一旦客户端连接成功,服务器会继续验证该客户是否具有执行某个查询的权限(例如对某个库某张表执行查询语句)

技术分享

 

 优化与执行

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

2、 对于SELECT语句,在解析查询之前,服务器会先检查查询缓存,如果能命中,服务器就不必再执行查询解析、优化和执行的整个过程,直接返回查询缓存中的结果集。
技术分享

 
MySQL重点:《高性能MySQL》读书笔记--索引:http://blog.csdn.net/xifeijian/article/details/20312557

《高性能MySQL》读书笔记--MySQL逻辑架构

标签:mysql   逻辑架构   查询缓存   线程   存储引擎   

原文地址:http://blog.csdn.net/xifeijian/article/details/45287139

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!