我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MYSQL架构篇

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码


	MYSQL架构篇


	MYSQL架构篇
[数据库教程]

技术图片

目标:
掌握Mysql的各组件及各组件的功能
理解Mysql简版执行流程和详细执行流程
掌握MyIsam和InnoDB的区别并说明使用场景
掌握Mysql日志文件及主要日志文件的作用
理解Mysql的数据文件及作用
使用命令查看mysql日志
配置my.cnf开启二进制日志、通用查询日志、慢查询日志等
掌握索引、分类、优劣势
使用命令创建、查看、删除索引
理解索引的原理和存储结构

1. MySQL架构篇

1.1 逻辑架构

逻辑架构图:
技术图片

如上图俩圈圈,分为Server层和存储引擎层两部分。

1.1.1 Server层

涵盖MySQL的大多数核心服务功能,以及内置函数,存储过程、触发器、视图都在这一层实现。

1) 连接器:

负责跟客户端建立连接、获取权限、维持和管理连接。

2) 查询缓存:

MySQL拿到一个查询请求后,会先到查询缓存看看,之前是不是执行过这条语句。
如果语句在查询缓存中,则直接返回之前的查询结果,如果不在,执行查询sql完成后,执行结果会被存入查询缓存中。
但不建议使用,查询缓存的失效非常频繁,只要有对一个表的更新,这个表上所有的查询缓存都会被清空。

3) 分析器:

分析器先会做“词法分析”,“语法分析”,判断你输入的这个SQL语句是否满足MySQL语法

4) 优化器:

优化器是在表里面有多个索引的时候,决定使用哪个索引;或者在一个语句有多表关联(join)的时候,决定各个表的连接顺序。

5) 执行器:

开始执行的时候,要先判断一下你对这个表T有没有执行查询的权限,如果没有,就会返回没有权限的错误,如果有权限,就打开表继续执行。打开表的时候,执行器就会根据表的引擎定义,去使用这个引擎提供的接口。

1.1.2 存储引擎层

负责数据的存储和提取,支持InnoDB、MyISAM、Memory等多个存储引擎。

MyISAM:高速引擎,拥有较高的插入,查询速度,但不支持事务、不支持行锁、
支持3种不同的存储格式。包括静态型、动态型和压缩型。
InnoDB:5.5版本后MySQL的默认数据库,支持事务和行级锁定,事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全,比MyISAM处理速度稍慢、支持外键。

InnoDB和MyISAM存储引擎区别
技术图片

存储引擎的选型:
InnoDB:支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。
如需频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM:插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。

物理架构

MySQL是通过文件系统对数据和索引进行存储,从物理结构上可以分为日志文件和数据索引文件。
日志文件采用顺序IO方式存储、数据文件采用随机IO方式存储
顺序IO方式:
优点:记录速度快,只能追加,适合日志
劣势:占空间
随机IO方式:
优点:省空间,适合数据+索引
劣势:相对慢

MySQL在Linux中的数据索引文件和日志文件都在/var/lib/mysql目录下。

日志文件

错误日志(errorlog):

记录了运行过程中遇到的所有严重的错误信息,以及 MySQL每次启动和关闭的详细信息。

二进制日志(binlog):

是逻辑日志,记录的是这个语句的原始逻辑(但不包括select语句内容)
如果是DDL语句(CREATE、ALTER、DROP),则直接记录到binlog日志,而DML(增删改)语句,必须通过事务提交才能记录到binlog日志中。

慢查询日志(slow query log)

SQL调优定位慢的 select,默认是关闭的。
需要通过以下设置进行开启:

开启慢查询日志

slow_query_log=ON

慢查询的阈值,记录执行时间超过3秒的所有查询,便于收集查询时间比较长的SQL语句

long_query_time=3

日志记录文件如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名,但不

是绝对路径名,文件则写入数据目录。
slow_query_log_file=file_name

数据文件

查看文件位置
SHOW VARIABLES LIKE ‘%datadir%‘;
datadir /u02/mysql/

InnoDB数据文件
.frm文件:主要存放与表相关的数据信息,主要包括表结构的定义信息
.ibd:使用独享表空间存储表数据和索引信息,一张表对应一个ibd文件。

开启慢查询日志

slow_query_log=ON

慢查询的阈值

long_query_time=3

日志记录文件如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名,但不

是绝对路径名,文件则写入数据目录。
slow_query_log_file=file_name
show variables like ‘log_%‘;
SHOW VARIABLES LIKE ‘%datadir%‘;
ibdata文件:使用共享表空间存储表数据和索引信息,所有表共同使用一个或者多个ibdata文
件。
MyIsam数据文件
.frm文件:主要存放与表相关的数据信息,主要包括表结构的定义信息
.myd文件:主要用来存储表数据信息。
.myi文件:主要用来存储表数据文件中任何索引的数据树

MYSQL架构篇

原文地址:https://www.cnblogs.com/fuyublog/p/13958845.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

MYSQL架构篇

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MYSQL架构篇

目标:掌握Mysql的各组件及各组件的功能理解Mysql简版执行流程和详细执行流程掌握MyIsam和InnoDB的区别并说明使用场景掌握Mysql日志文件及主要日志文件的作用理解Mysql的数据文件及作用使用命令查看mysql日志配置my.cnf开启二进制日志

	MYSQL架构篇
2014-06-28

MySQL 架构

执行流程简介主要分为server层和存储引擎层。server层主要分为:连接器、解析器、优化器、执行器、查询缓存连接器:主要作用就是用户认证、给用户创建连接并使用连接池维护连接。查询缓存:建立连接之后,就可以进行SQL操作了,如果该SQL语句在查询缓存中可以匹
MySQL 架构
2016-06-23
2024-04-02

mysql 架构类问题之 MMM 架构

MMM 和 MHA 架构MMM 和 MHA 架构的作用对主从复制集群的 master 进行监控当 master 宕机后把写 VIP 迁移到新 master重新配置集群中其他 slave 对新的 master 同步MMM 架构适用的主从复制架构 主 -- 主
mysql 架构类问题之 MMM 架构
2014-12-31

mysql架构类问题之MHA架构

MHA 架构适用的主从复制架构 主 / | 从1 从2 从3故障转移步骤选举具有最新更新的slave尝试从宕机的master保存二进制日志应用差异的中继日志到其他slave应用从master保存的二进制日志提升选举的slave为新的master配置其他slav
mysql架构类问题之MHA架构
2015-04-12

高可用 | Xenon 实现 MySQL 高可用架构 常用操作篇

原创:知数堂上一篇文章,我们详细介绍了 Xenon 实现 MySQL 高可用架构的部署过程。接下来本篇将介绍 Xenon 的常用操作,帮助大家在完成环境搭建之后,能把 Xenon 熟练的用起来,以更好的对 MySQL 高可用架构进行管理。| 1 启动集群1.1
高可用 | Xenon 实现 MySQL 高可用架构 常用操作篇
2020-08-03

Android Jetpack架构组件(九)WorkManager源码篇

上一篇讲解了WorkManager使用篇,本篇我们就从源码角度来分析WorkManager的工作原理。 WorkManager的原理 上一篇WorkManager使用篇讲解了如何使用WorkManager。本篇我们就按照上一篇的使用步骤来分
2022-06-06

MySQL架构体系

MySQL基本架构(一条SQL语句的执行过程)MySQL主要可以分为Server层和存储引擎层。Server层包括连接器、查询缓存、分析器、优化器、执行器等,所有跨存储引擎的功能都在这一层实现。存储引擎层负责数据的存储和提取。其架构模式是插件式的,支持Inno
MySQL架构体系
2018-05-07

Mysql 架构分析

1. mysql架构图1.1 各模块说明2 .Binlog 日志的使用3. Redo Log 和 Binlog的区别
Mysql 架构分析
2018-01-11

故事篇:数据库架构演变之路

故事的开头总是这样,适逢其会、猝不及防。今天我哼着“也是黄昏的沙滩上,有着脚印两对半......”在海边散步,迎面走来了一位身穿黄金甲的男子,来海边还穿这么花哨,真是个傻X。定睛一看,这不是嘉文吗?> 背景介绍:嘉文四世,德玛西亚皇子,是有名的高富帅。与盖伦、
故事篇:数据库架构演变之路
2017-05-20

Mysql架构图解读

目录一、Server层1、连接器2、缓存模块3、分析器(分析需要做什么)4、优化器(分析怎么做)5、执行器(执行过程)二、存储引擎层三、查询流程总结mysql服务端架构分为Server层http://www.lsjlt.com和存储引擎层(
Mysql架构图解读
2024-08-13

MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解

本文源码:GitHub·点这里 || GitEE·点这里一、MySQL逻辑架构1、逻辑架构图基于下面的逻辑架构图,可以大致熟悉MySQL各个架构组件之间的协同工作关系。很经典的C/S架构风格,即客户端/服务端模式。2、分层描述客户端连接通常会进行连接池管理,连
MySQL基础篇(05):逻辑架构图解和InnoDB存储引擎详解
2018-06-02

Mysql 高可用架构

MMM方案 即使主从复制中间出现异常情况,MMM记录了详细同步日志,重启服务后会从错误的地方继续同步,不会丢失数据; Mysql经典架构方案 此方案做了读写分离,写入是通过访问映射VIP地址,写入到主服务器,再通过vip实现主从同步保持数据一致;LVS+k
Mysql 高可用架构
2020-03-29

MYSQL-3m架构回顾

Master-Master replication manager for Mysql     我们先来回顾一下mmm的概念,它是一套灵活的基于perl编写的脚本程序,自己本身不提供mysql服务的功能,它是用来对mysql replica
2023-01-31

编程热搜

目录