MySQL—MySQL架构
MySQL—MySQL架构
MySQL逻辑架构图如下:

- Connectors连接器:负责跟客户端建立连接;
- Management Serveices & Utilities系统管理和控制工具;
- Connection Pool连接池:管理用户连接,监听并接收连接的请求,转发所有连接的请求到线程管理模块;
- SQL Interface SQL接口:接受用户的SQL命令,并且返回SQL执行结果;
- Parser解析器:SQL传递到解析器的时候会被解析器验证和解析;
- Optimizer查询优化器:SQL语句在查询之前会使用查询优化器对查询进行优化,explain语句查看的SQL语句执行计划,就是由此优化器生成;
- Cache和Buffer查询缓存:在MySQL5.7中包含缓存组件,在MySQL8中移除了;
- Pluggable Storage Engines存储引擎:存储引擎就是存取数据、建立与更新索引、查询数据等技术的实现方法。
MySQL日志文件
MySQL是通过文件系统对数据索引后进行存储的,MySQL从物理结构上可以分为日志文件和数据及索引文件。MySQL在Linux中的数据索引文件和日志文件通常放在/var/lib/mysql目录下。MySQL通过日志记录了数据库操作信息和错误信息。
常用日志文件如下:
- 错误日志:/var/log/mysql-error.log
- 二进制日志:/var/lib/mysql/mysql-bin
- 查询日志: general_query.log
- 慢查询日志: slow_query_log.log
- 事务重做日志: redo log
- 中继日志: relay log
- undo log
- ....
可以通过以下命令,来查看日志使用信息:
show variables like 'log_%';

错误日志:error log
- 默认开启,记录运行过程中所有严重的错误信息,及每次启动和关闭的详细信息;
- 通过log_error和log_warnings配置
- log_error:指定存储位置;
- log_warnings:配置警告信息级别
- log_warnings= 0:不记录告警日志
- log_warnings= 1:告警信息写入错误日志
- log_warnings 大于 1:表示各类告警信息,例如:有关网络故障的信息和重新连接信息写入错误日志。
配置
vim /etc/my.cnf
添加如下内容:

# 错误日志
log_error=/var/log/mysql-error.log
log_warnings=2
重启MySQL
systemctl restart mysqld

二进制日志bin log
二进制日志bin log默认是关闭的,需要通过配置来开启,可以记录数据库所有的DDL语句和DML语句,不包括DQL语句。
binlog主要用于实现mysql主从复制、数据备份、数据恢复。
配置中mysql-bin是binlog日志文件的basename,binlog日志文件的完整名称: mysql-bin.000001。
server_id=1
log-bin=mysql-bin
通用查询日志general query log
默认关闭,由于通用查询日志会记录用户的所有操作,其中还包含增删查改等信息,在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响MySQL的性能。如果不是为了调试数据库,不建议开启查询日志。

#启动开关
general_log={ON|OFF}
#日志文件变量,而general_log_file如果没有指定,默认名是host_name.log
general_log_file=/var/lib/mysql/机器host_name.log
慢查询日志slow query log
默认关闭,通过以下设置开启。记录执行时间超过long_query_time秒的所有查询,便于收集查询时间比较长的SQL语句。
开启配置:
#开启慢查询日志
slow_query_log=ON
# 慢查询的阈值,单位秒
long_query_time=10
#日志记录文件
#如果没有给出fi1e_name值,默认为主机名,后缀为-s1ow.log。
#如果给出了文件名,但不是绝对路径名,文件则写入数据目录。
s1ow_query_log_file=slow_query_log.1og
查看阈值:
show global status 1ike '%s1ow_queries%';
show variables like '%slow_query%' ;
show variab1es like 'long_query_time%';
MySQL数据文件
查看MySQL数据文件
show variables like '%datadir%';

我之前建立了一个sjdwz_test库,库中有表tab_test使用的是是InnoDB存储引擎,有表myisam_tab使用的是MyISAM存储引擎。

进入到刚才输出的数据文件目录:可以看到有一个sjdwz_test(库名)为名字的文件夹:

进入后,查看文件:

说明
ibdata文件:使用系统表空间存储表数据和索引信息,所有表共同使用一个或者多个ibdata文件。

- InnonDB存储引擎的数据文件
- 表名.frm文件:主要存放与表相关的元数据信息,包括:表结构的定义信息;
- 表名.ibd文件:一张表一个ibd文件,存储表数据和索引信息;
- MyISAM存储引擎的数据文件
- 表名.frm文件:主要存放与表相关的元数据信息,包括:表结构的定义信息;
- 表名.myd文件:主要存放数据;
- 表名.myi文件:主要存放索引。
MySQL—MySQL架构的更多相关文章
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- MySQL 体系架构
MySQL 体系架构 本篇文章是对mysql体系结构进行了详细的分析介绍,需要的朋友参考下 上面一图是mysql的概览图,我们从上往下看, 我们把上面一图一分为二,我们可以吧它分为两个部分, 1,是c ...
- MySQL 主从架构配置详解
无论是哪一种数据库,数据的安全都是至关重要的,因此熟练掌握数据库的安全备份功能,是作为开发人员,特别是后端开发人员的一项必备技能.MySQL 数据库内建的复制功能,可以帮助我们对数据进行异地备份,读写 ...
- 高性能mysql主存架构
原文:高性能mysql主存架构 MySQL Replication(Master与Slave基本原理及配置) 主从mysql工作原理: 1:过程: (1)Mysql的复制(replication)是一 ...
- CENTOS6.6下mysql MMM架构搭建
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn MMM(Master-Master replication mana ...
- Mysql基准测试详细解说(根据慕课网:《打造扛得住Mysql数据库架构》视频课程实时笔录)
什么是基准测试 基准测试是一种测量和评估软件性能指标的活动用于建立某个时刻的性能基准,以便当系统发生软硬件变化时重新进行基准测试以及评估变化对性能的影响. 我们可以这样认为:基准测试是针对系统设置的一 ...
- MySQL逻辑架构概述
1.MySQL逻辑架构 MySQL逻辑架构图 MySQL逻辑架构分四层 1.连接层:主要完成一些类似连接处理,授权认证及相关的安全方案. 2.服务层:在 MySQL据库系统处理底层数据之前的所有工作都 ...
- mysql MHA架构搭建过程
[环境介绍] 系统环境:Red Hat Enterprise Linux 7 + 5.7.18 + MHA version 0.57 系统 IP 主机名 备注 版本 xx系统 192.168.142. ...
- CentOS6.8下MySQL MHA架构搭建笔记
转载请注明出处,本文地址:http://www.cnblogs.com/ajiangg/p/6552855.html 以下是CentOS6.8下MySQL MHA架构搭建笔记 IP资源规划: 192. ...
- (8) MySQL主从复制架构使用方法
一. 单个数据库服务器的缺点 数据库服务器存在单点问题 数据库服务器资源无法满足增长的读写请求 高峰时数据库连接数经常超过上限 二. 如何解决单点问题 增加额外的数据库服务器,组建数据库集群 同一集群 ...
随机推荐
- Java开发中String.format的妙用
format方法是String类中的一个方法,主要作用是用来格式化字符串.当前做 的一个功能当中,刚好用到了这个方法,代码处理起来非常简便.因此就写篇博客 记录下来. 分析使用场景:前端App需要根据 ...
- RCC & GPIO库函数&传感器输入
RCC: Reset and Clock Control,即复位和时钟控制. 一般在.h文件的末尾都是一些函数声明,RCC常用的三个函数(外设时钟控制,没有时钟外设不工作): void RCC_A ...
- ReACT介绍与llama_index ReActAgent实践
Agent是大模型的重要应用方向,而ReACT是学术界提出的重要方法,本文介绍ReACT论文,然后通过llama_index ReActAgent来分析ReACT的执行过程. ReACT <RE ...
- 修改阿里云DNS 解决蓝奏云无法访问问题
某些地区的宽带连接不上蓝奏云服务器,需要手动改一下DNS配置,改为阿里云的即可 PS:阿里云DNS服务器地址为223.5.5.5 和 223.6.6.6 下面以win10系统为例,具体步骤如下 1.进 ...
- MyBatis Java 和 Mysql数据库 数据类型对应表
类型处理器(typeHandlers) MyBatis 在设置预处理语句(PreparedStatement)中的参数或从结果集中取出一个值时, 都会用类型处理器将获取到的值以合适的方式转换成 Jav ...
- TP6框架--EasyAdmin学习笔记:数据表添加新参数,如何强制清除缓存
这是我写的学习EasyAdmin的第六章,这一章我给大家分享下如何在数据表中添加新参数,并强制清除缓存 这一章的主题是我在开发中碰到的一个问题,当我在网上疯狂查找解决方法依旧一无所获后,我又尝试了从底 ...
- Java事件侦听器学习记录
前言 我们监听事件之前要有事件源source,创建事件源(Event),发布事件(publishEvent),然后才能到监听事件. 事件驱动机制是观察者模式(称发布订阅)具体实现,事件对象(Event ...
- vivado的VIO调试工具的使用
vivado中的VIO调试工具的使用 1.实验原理 前面一篇介绍了ILA的独立测试,vivado中还有其他的FPGA测试工具.其中VIO就是个比较常用的工具.相对于ILA更多的关注波形,VIO则专注于 ...
- Oracle通过数据库链连接KingbaseES
测试环境: ip 数据库版本 192.168.254.135 oracle 11g 192.168.254.137 V008R006C005B0023 通过oracle官网得知,Oracle使用DG4 ...
- archlinux修改btrfs文件系统大小出现ERROR: unable to retrieve fs info
提权sudo就可以了 例: sudo btrfs filesystem resize max /