MySQL技术内幕InnoDB存储引擎(三)——文件相关
构成MySQL数据库和InnoDB存储引擎表的文件类型有:
- 参数文件:MySQL实例运行时需要的参数就是存储在这里。
- 日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件。
- socket文件:用于套接字连接。
- pid文件,MySQL实例的进程ID文件。
- MySQL表结构文件:用来存放MySQL表结构定义文件。
- 存储引擎文件:存储引擎自己用来记录数据的文件,真正地存储记录和索引等数据。
1-5都是MySQL的五年,只有6是存储引擎自己的文件。
1.参数文件
作用:
MySQL启动的时候,数据会先去读一个配置参数文件,用于初始化,这些参数通常定义了某种内存结构的大小。
什么是参数?
就是一个键值对,比如定义了innodb_buffer_pool_size = 1G ,那么这个字符串就是键,1G就是值。在MySQL启动的时候,就是需要这些初始化参数。
参数类型
主要分为两类:
- 动态参数:在运行的时候进行更改。
- 静态参数:整个实例的运行周期都不能更改。
2.日志文件
用于记录影响数据库的各种类型的活动。
常见的日志包括:
- 错误日志
- 二进制日志
- 慢查询日志
- 查询日志
错误日志
作用:
记录MySQL启动运行停止是的错误、警告、正确的信息。
慢查询日志
作用:
帮助定位可能存在问题的SQL语句,从语句层面进行优化。
举例:
比如将超过一定阈值时间的SQL语句都记录到慢查询日志中,然后运行一段时间,对其查看,优化性能查的语句。
查询日志
作用:
记录所有的MySQL数据库请求信息,无论是否正确执行。
二进制文件
作用:
记录了所有对数据库执行更改的操作,不包括SELECT、SHOW这类查询操作,因为它们不会修改数据。
作用还分为:
- 恢复:某些数据的恢复所需。
- 复制:通过复制和执行二进制文件,将一台数据库与另一台数据库进行实时同步。
- 审计:判断是否存在SQL注入攻击。
3.套接字文件
作用:
UNIX系统下本地连接数据可采用的套接字方式,需要该文件。
4.pid文件
作用:
实例启动的时候,会将自己的进程ID写入这个文件中。
5.表结构定义文件
作用:
用于记录存储数据的表的结构定义。
6.InnoDB存储引擎文件
上面介绍的都是MySQL本身的文件,与存储引擎无关。
表空间文件
作用:
InnoDB采用将存储数据按表空间进行存放的设计,表空间文件就是真正存放数据库数据的文件。
重做日志文件
作用:
用于恢复主机因为掉电宕机而损失的一部分数据,保证数据的完整性。
与上面提到的MySQL数据库二进制文件有什么区别?
- 二进制文件会记录所有与数据库相关的修改操作,包括其他引擎的日志,而这里的重做日志只是InnoDB有关的事务日志。
- 记录的内容不同。二进制记录事务的具体操作内存,而重做日志记录关于每个页的更改的物理情况。
- 写入时间不同,二进制文件只在事务提交前进行记录,只向磁盘写一次,而重做日志不断地写。
重做日志写入过程:
先写入重做日志缓冲,在按顺序写入日志文件。
MySQL技术内幕InnoDB存储引擎(三)——文件相关的更多相关文章
- 《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记
一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是 ...
- Mysql技术内幕——InnoDB存储引擎
Mysql技术内幕——InnoDB存储引擎 http://jingyan.baidu.com/article/fedf07377c493f35ac89770c.html 一.mysql体系结构和存储引 ...
- mysql技术内幕InnoDB存储引擎-阅读笔记
mysql技术内幕InnoDB存储引擎这本书断断续续看了近10天左右,应该说作者有比较丰富的开发水平,在源码级别上分析的比较透彻.如果结合高可用mysql和高性能mysql来看或许效果会更好,可惜书太 ...
- 《MySQL技术内幕 InnoDB存储引擎 》学习笔记
第1章 MySQL体系结构和存储引擎 1.3 MySQL存储引擎 数据库和文件系统最大的区别在于:数据库是支持事务的 InnoDB存储引擎: MySQL5.5.8之后默认的存储引擎,主要面向OLTP ...
- (转)Mysql技术内幕InnoDB存储引擎-表&索引算法和锁
表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...
- MySQL技术内幕InnoDB存储引擎(表&索引算法和锁)
表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...
- 【Mysql技术内幕InnoDB存储引擎】读书笔记
一.存储引擎 1.InnoDB引擎 设计目标是面向在线事务(OLTP)处理的应用. 支持事务.行级锁.通过多版本并发控制(MVCC)支持高并发.提供一致性非锁定读.next-key locking避免 ...
- MySQL技术内幕InnoDB存储引擎(二)——InnoDB存储引擎
1.概述 是一个高性能.高可用.高扩展的存储引擎. 2.InnoDB体系架构 InnoDB存储引擎主要由内存池和后台线程构成. 其中,内存池由许多个内存块组成,作用如下: 维护所有进程和线程需要访问的 ...
- MySQL技术内幕InnoDB存储引擎(七)——事务
什么是数据库的事务? 事务是访问并更新数据库中各种数据的一个程序执行单元.事务也是数据库区别于文件系统的一个重要特性. 事务需要满足的特性 1.原子性 原子性就是指数据库中的一个完整的事务是不可分割的 ...
随机推荐
- 一文带你玩转对象存储COS文档预览
随着"互联网+"的发展,各行各业纷纷"去纸化",商务合同.会议纪要.组织公文.商品图片.培训视频.学习课件.随堂讲义等电子文档无处不在.而要查看文档一般需要先下 ...
- pytorch框架对RTX 2080Ti RTX 3090的支持与性能测试
时间点:202011-18 一.背景 2020年9月nvidia发布了30系列的显卡.比起20系列网上的评价是:性能翻倍,价格减半. 最近正好本人手上有RTX 2080Ti 和 RTX 3090,所以 ...
- Gin的中间件和路由分组
什么是分组 对router创建Group(就是分组), 对同一分组会拥有同一前缀和同一中间件 写法 eg: r := gin.Default() v1 := r.Group("/v1&quo ...
- Cpython的全局解释器锁(GIL)
# Cpyrhon解释器下有个全局解释器锁-GIL:在同一 # 在同一时刻,多线程中只有一个线程访问CPU # 有了全局解释器锁(GIL)后,在同一时刻只能有一个线程访问CPU. # 全局解释器锁锁的 ...
- Linux学习 - 02 使用 - Centos8 - 『更换rpm/epel包源为国内源』
1. Centos8 - 『更换rpm/epel包源为国内源』 centos 8 默认是会读取centos.org的mirrorlist的,所以一般来说是不需要配置镜像的. 如果你的网络访问mirro ...
- centos8 连接wifi
从官网下载的6G多的iso安装后 #ifconfig -a 如下 enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500l ...
- 计算机&编程语言发展史
计算机&编程语言发展史 编辑于2020-11-18 计算机的基本组成 计算机的发展经历了哪几代? 第一代 电子管计算机 第二代 晶体管计算机 第三代 集成电路计算机 第四代 大规模和超大规模集 ...
- Mac如何像Windows一样在文件系统中查看文件?
许多Windows系统用户刚转向Mac的时候,肯定非常不适应Mac系统独特的文件系统,就像安卓转iOS系统一样,那么Mac电脑如何像Windows系统一样,能够查看电脑上的各个盘,如C盘D盘等等,然后 ...
- 攻克solo第五课(Mixolydian 音阶)
相对于独奏来说,我们已经说过了很多关于solo或独奏的乐理和技巧.那么这篇文章,笔者将使用guitar pro7软件来跟大家分享Mixolydian 音阶的演奏技巧,以及如何在学习Mixolydian ...
- CDR魔镜插件是什么,有哪些功能?
CDR魔镜插件是一款功能强大的CorelDRAW插件,很多CDR用户很早直接就有接触,因其强大的功能性和快速运行的特点被广大用户所喜爱,没有繁琐的选项,无论新人小白,还是制图高手都能够很快的适应,实现 ...