1.Server层

1.Connectors

指的是各种形式的与MySQL交互的客户端。包括JDBC客户端、mysql自带的客户端、Navicat、sqlyog等客户端工具。

2.Management Serveices & Utilities

系统管理和控制工具

3.Connection Pool: 连接池

管理用户连接,等待处理连接请求。

负责监听对 MySQL Server 的各种请求,接收连接请求,转发所有连接请求到线程管理模块。每一个连接上 MySQL Server 的客户端请求都会被分配(或创建)一个连接线程为其单独服务。

而连接线程的主要工作就是负责 MySQL Server 与客户端的通信,接受客户端的命令请求,传递Server 端的结果信息等。线程管理模块则负责管理维护这些连接线程。包括线程的创建,线程的cache 等。

4.SQL Interface: SQL接口

接受用户的SQL命令,并且返回用户需要查询的结果。比如select from就是调用SQL Interface

5.Parser: 解析器

SQL命令传递到解析器的时候会被解析器验证和解析。

主要功能:

a . 将SQL语句进行词法分析和语法分析,解析成语法树,然后按照不同的操作类型进行分类,然后做出针对性的转发到后续步骤,以后SQL语句的传递和处理就是基于这个结构的。

b. 如果在分解过程中遇到错误,那么就说明这个sql语句是不合理的。

6.Optimizer: 查询优化器

SQL语句在查询之前会使用查询优化器对查询进行优化。explain语句查看的SQL语句执行计划,就是由查询优化器生成的。

优化器都做哪些优化处理呢?比如

1. 当有多个索引可用的时候,决定使用哪个索引;

2. 在一个语句有多表关联(join)的时候,决定各个表的连接顺序,以哪个表为基准表。

7.Cache和Buffer: 缓存及缓冲区

包括全局缓存和存储引擎对应的缓存及缓冲区。全局缓存主要是数据字典缓存数据例如:表空间的定义缓存、约束定义缓存、表结构定义缓存、存储过程定义缓存、字符集定义缓存等。在MySQL5.7之前的

版本中还包含查询缓存,但是在MySQL8.0.3以后的版本中已经将查询缓存移除了。

存储引擎的缓存由存储引擎定义和管理,不同的存储引擎缓存及缓冲区的结构和使用方法不同。后面的内容我们着重讲解InnoDB引擎的缓存及缓冲区。

2.存储引擎

与其他数据库例如Oracle 和SQL Server等数据库中只有一种存储引擎不同的是,MySQL有一个被称为“Pluggable Storage Engine Architecture”(可插拔的存储引擎架构)的特性,也就意味着MySQL数据库提供了多种存储引擎。

而且存储引擎是针对表的,用户可以根据不同的需求为数据表选择不同的存储引擎,用户也可以根据自己的需要编写自己的存储引擎。也就是说,同一数据库不同的表可以选择不同的存储引擎

creat table xxx()engine=InnoDB/Memory/MyISAM

简而言之,存储引擎就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法。

1.MySQL存储引擎种类

存储引擎

说明

MyISAM

高速引擎,拥有较高的插入,查询速度,但不支持事务,表级锁

InnoDB

mysql 的默认引擎,支持事务、行锁、外键。mysql 选择 InnoDB 引擎时, 功能最完整。

ISAM

MyISAM的前身,MySQL5.0以后不再默认安装

MRG_MyISAM

(MERGE)

将多个表联合成一个表使用,在超大规模数据存储时很有用

Memory

内存存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。只在内存上保存数据,意味着数据可能会丢失

BLACKHOLE

/dev/null存储引擎(您向其写入的任何内容都会消失)

Archive

将数据压缩后进行存储,非常适合存储大量的独立的,作为历史记录的数据, 但是只能进行插入和查询操作

CSV

CSV 存储引擎是基于 CSV 格式文件存储数据(应用于跨平台的数据交换) ,

数据会生成一个 CSV 文件,用户逗号分隔的一个文本文件。

2.查看存储引擎

mysql> show engines;

3.InnoDB和MyISAM存储引擎区别

Innodb

Myisam

存储文件

.ibd 数据文件和索引文件,包含SDI元数据

.sdi 元数据定义文件

.MYD 数据文件

.MYI 索引文件

表锁、行锁

表锁

事务

支持

不支持

CRDU

读、写

读多

count

扫表

专门存储的地方

索引结构

B+ Tree

B+ Tree

XtraDB存储引擎是由Percona公司提供的存储引擎,该公司还出品了Percona Server这个产品,它是基于MySQL开源代码进行修改之后的产品。其中MariaDB中包含了XtraDB引擎。

4:引擎的选择

那么多引擎我们怎么选择?大部分情况下,InnoDB都是正确的选择。对于如何选择MySQL引擎这件事上可以归纳为一句话:除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都 应该选择InnoDB引擎。 

如果您觉得文章好看,欢迎点赞收藏加关注,一连三击呀,您的肯定是我持续输出的动力,感谢!!☺☻

【高并发高性能高可用之海量数据MySQL实战-3】-MySQL逻辑架构图相关推荐

  1. 最新亿级流量电商详情页系统的大型高并发与高可用缓存架构实战第一版附全套资料

    课程介绍(非升级版) 对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里很多朋友对缓存技术的了解与掌握,仅仅停留在掌握red ...

  2. 亿级流量电商详情页系统的大型高并发与高可用缓存架构实战

    2019独角兽企业重金招聘Python工程师标准>>> 对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里 ...

  3. 亿级流量电商详情页系统的大型高并发与高可用缓存架构实战 目录

    对于高并发的场景来说,比如电商类,o2o,门户,等等互联网类的项目,缓存技术是Java项目中最常见的一种应用技术.然而,行业里很多朋友对缓存技术的了解与掌握,仅仅停留在掌握redis/memcache ...

  4. 高并发系统高可用设计方案(一)

    什么是高可用 互联网应用是面向大众的应用系统,他们可能会随时会被使用,那么应用就必须要保持随时可用,也就是我们常说的7x24小时可用,但是互联网应用有可能会遇到硬件故障,软件故障等多种问题,可能导致服 ...

  5. TRTC助力高并发、高可用实时音视频互动场景落地(内含开发福利)

    疫情之下,大家在工作生活中更多开始使用直播,视频会议.网络教学等场景需求被点燃,但与此同时不可避免会带来突发的大规模在线视频与协作需求与流量冲击,面临高并发.高可用.高性能的挑战. 面对疫情压力,腾讯 ...

  6. 高并发和高可用的常规理解

    高并发与高可用 究竟啥才是互联网架构"高并发" 一.什么是高并发 高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证 ...

  7. 高性能、高并发、高扩展性和可读性的网络服务器架构:StateThreads

    译文在后面:代码我放在GITHUB了:http://github.com/ossrs/state-threads. State Threads for Internet Applications In ...

  8. 如果淘宝双十一架构用. Net Core,如何“擒住”高并发、高可用、低延迟?

    电商的秒杀和抢购,对我们来说,都不是一个陌生的东西.然而,从技术的角度来说,这对于Web系统是一个巨大的考验.当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要. 缓存技 ...

  9. Redis面试 - 如何保证 redis 的高并发和高可用?

    面试题 如何保证 redis 的高并发和高可用?redis 的主从复制原理能介绍一下么?redis 的哨兵原理能介绍一下么? 面试官心理分析 其实问这个问题,主要是考考你,redis 单机能承载多高并 ...

最新文章

  1. 《剑指offer》第十五题(二进制中1的个数)
  2. Linux期末复习题库(3)
  3. 二叉树的四种遍历方式
  4. 虚拟研讨会:.NET的未来在哪里?
  5. 网页复选框设置只能选一个_男生在密室呆一个月, 只能选手机或者女人, 结果太现实...
  6. JMS学习九 ActiveMQ的消息持久化到Mysql数据库
  7. C++类中的Static关键字
  8. SpringBoot2.1.5 (35)---安全
  9. 【兰伯特光照与Blinn_Phong光照】
  10. 从inceptionv1走向xception小结
  11. Flink 1.11 新特性之 SQL Hive Streaming 简单示例
  12. 一分钟了解阿里云产品:安全产品评测:阿里云盾安全威胁情报“态势感知”...
  13. Tensorflow-(4)使用Tensorflow加载csv,pandas dataframes,图像,文本文件
  14. JDownloader 突破百度网盘下载限速
  15. 网易云音乐8.0版本背后的野心
  16. PHP实现文件下载功能,提示压缩包损坏及打不开的解决方法
  17. cd 命令行进入目标文件夹
  18. [OHIF-Viewers]医疗数字阅片-医学影像-事件总线管理器
  19. Zynq LTE基站设计与实现
  20. 数据结构课设——计算器

热门文章

  1. 2019网红带货电商新趋势,与传统电商说再见-云秀传媒
  2. 职业经理人影响力自检手册(二)
  3. Java初转型-Maven入门
  4. 问卷中多选题该怎么分析?
  5. open3d,读取stl/ply/obj/off/gltf/glb三维模型,并转换成点云,保存
  6. fluent里常见基础问题(转)
  7. Echarts 图表一些细节设置 lenged 双Y轴等
  8. 微信记录怎么恢复?恢复已删除微信历史记录的4种方式
  9. 最近瞎忙,比较懒撒,所以要收收心,该学习的学习。
  10. 一觉醒来,欠费120万,移动程序员要被祭天了!