IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    xifeijian发表于 2015-05-04 13:05:57
    love 0
    一、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


沪ICP备19023445号-2号
友情链接