架构图

做Java开发时,项目一般会分为数据访问层、业务逻辑层、控制层等,每层处理不同的任务。类似的,mysql也不是单一的模块,其内部也分为几层。自己不会画,从网上找来了经典的mysql架构图:

分层简介

1. 连接层

主要处理客户端的连接(例如JDBC)、权限认证等。

2. 服务层

  • Management Serveices & Utilities:用于处理备份、容灾
  • SQL Interface:相当于Java的API,根据语句命令,判断使用哪个接口,例如select是查询、insert是插入
  • Parser:解析器,例如注释、从from开始执行等
  • Optimizer:优化器,我们手写的sql语句,会在这个组件中被优化为它认为更合理的方式
  • Caches & Buffers:缓存区,如果正好有需要查询的数据,就不需要去数据库查询了

3. 引擎层

mysql的引擎可插拔、适用于不同的场景,用户可以根据需求选择。

4. 存储层

真正的数据库文件硬件保存的区域。

两种常用的引擎对比

mysql的引擎很多,但是目前最常用的是MyISAM和InnoDB

1. 查看所有引擎和当前默认引擎

mysql> show engines;

2. MySAM和InnoDB的差别

  MyISAM InnoDB
外键 不支持 支持
表锁 行锁
事务 不支持 支持
缓存 只缓存索引 缓存索引和真实数据
表空间
关注点 性能 并发

总的来说,MyISAM适合小数据量的项目,InnoDB适合大数据量、高并发的项目。

mysql语句的执行数据

1. 手写顺序

SELECT

FROM

JOIN

ON

WHERE

GROUP BY

HAVING

ORDER BY

LIMIT

2. 经过mysql优化器处理后的顺序

FROM

ON

JOIN

WHERE

GROUP BY

HAVING

SELECT

ORDER BY

LIMIT

mysql的逻辑架构的更多相关文章

  1. mysql 的逻辑架构 与 存储引擎的介绍

    mysql 的逻辑架构分为三层: 最上层的服务大多数基于网络的客户端.服务器的工具或者服务都有类似的架构,比如连接处理,授权认证.安全等 第二层架构:mysql的核心服务功能都在这一层,包括查询解析, ...

  2. 简单描述MySQL常用引擎的特点及MySQL的逻辑架构

    目录 表的分类数据库引擎? 首先得说说mysql的逻辑架构,它整体分为3层: 常用引擎: 补充知识点: 表的分类数据库引擎? 引擎是什么? 引擎就是一个系统最核心的部分,比如汽车的发动机,人的心脏 数 ...

  3. MySql服务器逻辑架构

    一.MySql服务器逻辑架构图         每个虚线框都是一层: 第一层:最上层的服务器不是MySql所独有的,大多数基于网络的客户端/服务器工具或者服务都有类似的系统.比如链接处理,授权认证,安 ...

  4. MySQL三层逻辑架构

    MySQL的存储引擎架构将查询处理与数据的存储/提取相分离.下面是MySQL的逻辑架构图: 第一层负责连接管理.授权认证.安全等等. 每个客户端的连接都对应着服务器上的一个线程.服务器上维护了一个线程 ...

  5. 002 -- MySQL的逻辑架构

                                            msql的逻辑架构图 第一层:主要功能是连接处理.授权认证.安全等.相当于JavaEE中的常说的Web层 第二层:包含了 ...

  6. MySQL Server逻辑架构

    1.MySQL基础 MySQL是一个开放源代码的关系数据库管理系统.原开发者为瑞典的MySQL AB公司,最早是在2001年MySQL3.23进入到管理员的视野并在之后获得广泛的应用. 2008年My ...

  7. mysql 概念和逻辑架构

    1.MySQL整体逻辑架构 mysql 数据库的逻辑架构如下图: 第一层,即最上一层,所包含的服务并不是MySQL所独有的技术.它们都是服务于C/S程序或者是这些程序所需要的 :连接处理,身份验证,安 ...

  8. 高性能MySQL之基础架构

    一.背景 为什么我们需要先学习MYSQL的基础架构先呢? 原因很简单,当我们需要了解一件事物的时候,我们只有站在宏观的层面,才能层层剥丝抽茧的去理解问题.举个例子,我们要看一个框架的源码,一开始就想进 ...

  9. MySQL逻辑架构概述

    1.MySQL逻辑架构 MySQL逻辑架构图 MySQL逻辑架构分四层 1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案. 2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都 ...

随机推荐

  1. 第十篇.5、python并发编程之协程

    一 引子 本节的主题是基于单线程来实现并发,即只用一个主线程(很明显可利用的cpu只有一个)情况下实现并发,为此我们需要先回顾下并发的本质:切换+保存状态 cpu正在运行一个任务,会在两种情况下切走去 ...

  2. 14Filter&Listener

    1.Filter:过滤器 1.1 概念 生活中的过滤器:净水器,空气净化器,土匪. web中的过滤器:当访问服务器的资源时,过滤器可以将请求拦截下来,完成一些特殊的功能. 过滤器的作用: 一般用于完成 ...

  3. 转(static final 和final的区别)

    学习java的时候常常会被修饰符搞糊涂,这里总结下static final和final的区别. 1.static 强调只有一份,final 说明是一个常量,final定义的基本类型的值是不可改变的,但 ...

  4. mysql安装及加固

    mysql安装 查看是否安装mysql 我们先看一下有没有安装mysql yum list installed mysql | grep mysql 本地只安装了php链接mysql的库,没有安装my ...

  5. 第06课:GDB 常用命令详解(下)

    本课的核心内容: disassemble 命令 set args 和 show args 命令 tbreak 命令 watch 命令 display 命令 6.1 disassemble 命令 当进行 ...

  6. jumpserver部署0.3版本 =====( ̄▽ ̄*)b

    jumpserver概述 跳板机概述: 跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作: 跳板机缺点:没有实现对运维人员操作行为的控制和 ...

  7. pom变成红橙色

    今天发现自己POM变成了红橙色. 原因未知:看到上网有3~4种方法.尝试了一下都不行然后采用的换java jdk的方法,然后就解决了. 在设置中maven有几个属性. 1.改变java jre环境 也 ...

  8. jquery 自定义右键菜单

    如果要自定义右键菜单,那么就需要禁止原本的右键菜单,代码如下 document.oncontextmenu = new Function("return false;");//禁止 ...

  9. layer 回调

    目前使用的layer版本为1.8.5 在调用layer的JS中,使用end来进行处理 $.layer({ type : 2, shadeClose : true, title : '选择人员', cl ...

  10. H5+JAVA的文件上传,断点续传

    这里只写后端的代码,基本的思想就是,前端将文件分片,然后每次访问上传接口的时候,向后端传入参数:当前为第几块文件,和分片总数 下面直接贴代码吧,一些难懂的我大部分都加上注释了: 上传文件实体类: 看得 ...