MySQL 体系架构

本篇文章是对mysql体系结构进行了详细的分析介绍,需要的朋友参考下

上面一图是mysql的概览图,我们从上往下看, 我们把上面一图一分为二,我们可以吧它分为两个部分,

  1,是connectors 的部分,即客户端部分

  2,是大块的mysql server

把它个个部件拆开来看我们一个个来解析

1. connectors

  指的就是mysql的客户端,

1. Management Serveices & Utilities:

  这是mysql 的系统管理和控制工具,如bin 目录下的mysql,mysqldump,cluster 之类的东西

2. Connction pool

  管理缓冲用户连接 ,线程处理等需要缓存的需求,他提供如下用能,

  1. authentication 验证机制,验证用户名,密码,Ip,权限
  2. Thread Reuse 分配线程.
  3. Connection Limits 链接限制(池子大小);
  4. Check Memory 检查连接池内存空间大小,如用了多少还剩多少,有多少个连接正在运行之类的检查
  5. caches 缓存池

4. SQL Interface: SQL接口。

  接受用户的SQL命令,并且返回用户需要查询的结果。假如用户只需的是标准的SQL的话那必然会经过这一步,

  它会对我们的命令 如 DML,DDL,Stored Procedure,Views,Triggers,etc  分解成一个个基本元素(也叫令牌,令牌环),然后把这些基本元素放到一个数据结构里面

5. Parser: 解析器。

  1. Query Transactional 查询事物
  2. Object Privilege 权限认证

  

6. Optimizer: 查询优化器。

  我们队mysql进行优化有很大一部分是在这里进行 ,它这里做的无非就是对SQL进行优化,得到最佳的执行计划 ,

  在这个里面呢它会确认我们的

  1. access paths连接通道,
  2. statistics 采集我们的统计信息

  -- 而得到最佳的执行计划

  SQL语句在查询之前会使用查询优化器对查询进行优化。他使用的是“选取-投影-联接”策略进行查询。

用一个例子就可以理解: select uid,name from user where gender = 1;

这个select 查询先根据where 语句进行选取,而不是先将表全部查询出来以后再进行gender过滤

这个select查询先根据uid和name进行属性投影,而不是将属性全部取出以后再进行过滤

将这两个查询条件联接起来生成最终查询结果

7. Cache和Buffer: 查询缓存。

  如果查询缓存有命中的查询结果,查询语句就可以直接去查询缓存中取数据。

  这个缓存机制是由一系列小缓存组成的。比如表缓存,记录缓存,key缓存,权限缓存等

8. Engine :存储引擎。

  存储引擎是MySql中具体的与文件打交道的子系统。也是Mysql最具有特色的一个地方。

  Mysql的存储引擎是插件式的。它根据MySql AB公司提供的文件访问层的一个抽象接口来定制一种文件访问机制(这种访问机制就叫存储引擎)

  现在有很多种存储引擎,各个存储引擎的优势各不一样,最常用的MyISAM,InnoDB,BDB

  如:

  MyISAM引擎,它查询速度快,有较好的索引优化和数据压缩技术。但是它不支持事务。

  InnoDB支持事务,并且提供行级的锁定,应用也相当广泛。 
  Mysql也支持自己定制存储引擎,甚至一个库中不同的表使用不同的存储引擎,这些都是允许的。

9. 文件系统和日志系统

  

MySQL 体系架构的更多相关文章

  1. MySQL体系架构

    MySQL体系架构 学习一门数据库系统首先得了解它的架构,明白它的架构原理对于后期的分析问题和性能调优都有很大的帮助,接下来就通过分析架构图来认识它. 数据库:物理操作系统文件或者其它文件的集合,在m ...

  2. 一文搞懂MySQL体系架构!!

    写在前面 很多小伙伴工作很长时间了,对于MySQL的掌握程度却仅仅停留在表面的CRUD,对于MySQL深层次的原理和技术知识了解的少之又少,随着工作年限的不断增长,职场竞争力却是不断降低的.很多时候, ...

  3. MySQL InnoDB存储引擎体系架构 —— 索引高级

    转载地址:https://mp.weixin.qq.com/s/HNnzAgUtBoDhhJpsA0fjKQ 世界上只两件东西能震撼人们的心灵:一件是我们心中崇高的道德标准:另一件是我们头顶上灿烂的星 ...

  4. MySQL架构原理之体系架构

    MySQL是最流行的关系型数据库软件之一,由于其体量小.速度快.开源免费.简单易用.维护成本低等,在季军架构中易于扩展.高可用等优势,深受开发者和企业的欢迎,在互联网行业广泛使用. 其系统架构如下: ...

  5. Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview

    Atitit 知识图谱解决方案:提供完整知识体系架构的搜索与知识结果overview   知识图谱的表示和在搜索中的展1 提升Google搜索效果3 1.找到最想要的信息.3 2.提供最全面的摘要.4 ...

  6. 2.3 InnoDB 体系架构

    下图简单显示了InnoDB的存储引擎的体系架构,从图可见,InnoDB储存引擎有多个内存块,可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构 缓存磁 ...

  7. 面向服务的体系架构(SOA)

    面向服务的体系架构(SOA) 1.面向服务的体系架构(SOA) 面向服务的架构(service-oriented architecture)是Gartner于2O世纪9O年代中期提出的面向服务架构的概 ...

  8. InnoDB引擎体系架构

    InnoDB引擎架构介绍 innodb存储引擎的体系架构,可简单划分成三层: 数据文件 :磁盘上的数据文件 内存池:缓存磁盘上的数据,方便读取,同时在对磁盘文件数据修改之前在这里缓存,然后按一定规刷新 ...

  9. InnoDB体系架构(二)内存

    InnoDB体系架构(二)内存 上篇文章 InnoDB体系架构(一)后台线程 介绍了MySQL InnoDB存储引擎后台线程:Master Thread.IO Thread.Purge Thread. ...

随机推荐

  1. Warning: Permanently added '...' (RSA) to the list of known hosts --Windows下git bash 警告处理

    原链接地址 StackOverflow 处理方法: 创建文件~/.ssh/config, 此处对应windows当前用户目录下的.ssh文件夹 增加如下语句 UserKnownHostsFile ~/ ...

  2. MySQL写入插入数据优化配置

    *innodb_buffer_pool_size 如果用Innodb,那么这是一个重要变量.相对于MyISAM来说,Innodb对于buffer size更敏感.MySIAM可能对于大数据量使用默认的 ...

  3. js数组与字符串的相互转换方法

    一.数组转字符串 需要将数组元素用某个字符连接成字符串,示例代码如下: var a, b; a = new Array(0,1,2,3,4); b = a.join("-"); 二 ...

  4. 【转载】#323 - A Generic Class is a Template for a Class

    A generic classs is a class that takes one or more type parameters, which it then uses in the defini ...

  5. sort()的多种用法

    sort()  方法用于对数组的元素进行排序. 一.默认情况 在默认情况下, sort() 方法按升序排列数组项.为了实现排序, sort() 方法会调用每个数组项的 toString() 转型方法, ...

  6. bzoj 1006: [HNOI2008]神奇的国度

    这是个标准的弦图,但如果不知道弦图就惨了=_= 趁着这个机会了解了一下弦图,主要就是完美消除序列,求出了这个就可以根据序列进行贪心染色. 貌似这个序列很神,但是具体应用不了解…… 这道题为什么可以这么 ...

  7. exynos 4412 eMMC配置及使用方法

    /** ****************************************************************************** * @author    Maox ...

  8. javascript代码复用--继承

    由于javascript没有类的概念,因此无法通过接口继承,只能通过实现继承.实现继承是继承实际的方法,javascript中主要是依靠原型链要实现. 原型链继承 原型链继承是基本的继承模式,其本质是 ...

  9. 什么是AJAX技术及其常识

    1.什么是Ajax? Ajax的全称是:AsynchronousJavaScript+XML 2.Ajax的定义: Ajax不是一个技术,它实际上是几种技术,每种技术都有其独特这处,合在一起就成了一个 ...

  10. Win7构造wifi热点【Written By KillerLegend】

    1:Win+R打开DOS,输入以下命令然后回车,不要关闭该DOS窗口: netsh wlan set hostednetwork  mode = allow ssid =你的wifi热点名字  key ...