ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql(下)

2021-07-21 01:31:19  阅读:120  来源: 互联网

标签:事务 max 256 mysql 磁盘 redo id


log buffer  redo日志的缓存   mysql其他的内容:表空间 行记录 锁

刷新到磁盘完成持久化,但是redis mysql都有内存缓存丢失的问题

bp---磁盘  1. 直接刷到磁盘会造成性能降低    2.先把提交的记录,操作信息缓存到另一个文件中,如果提交事务失败了,就从文件中取出这两条语句,再执行一下

 

一条记录  隐藏的字段    1.rolling_pointer回滚的指针   2.trx_id当前数据最新的一个事务id   3 row_id 有条件(没有主键、没有非空unique字段)  内存中max_row_id是全局变量,会把id分配给row_id之后自己再加1  之前在内存buffer pool中 256的倍数后会保存到磁盘  

如果max_row_id已经到300,突然系统发生故障,256保存到磁盘,剩下的由256+256再重新分配

 

 

 

 页面中的偏移量:前面的1248字节代表空间大小  在某个页面的偏移处写1、2、4、8个字节大小的redo日志  表空间和页号可以帮助定位到具体的页,在页中的具体位置写需要通过偏移量

mlog_write_string 数据没有默认的字节数,需要指定字节数

 

 

 

 

 

 redolog是原子性的  插入语句(叶子结点、新建页、移动主键、内节点页面、页目录等都需要更改)

遍历redo 1 2 3 ..到rec_end时结束,前面的redo log都是一组

 

redo log的type占1个字节,一共有8位,第一位  为0 代表是普通日志  1代表是单独的原子性的操作  

如果上面redo0 的type 为1,则单独执行,遍历从redo1开始

 

 

 

 

 

 

 no编号   len长度   group第一个mtr的偏移量

body存具体的信息   checksum正确性校验

内存中若干个连续的redolog block

 

 

 开始事务--sql---redo log ---mtr---block--logbuffer

 

 

 

 

 

 2 并没有强制要把bpp中的数据刷新到磁盘,但是redolog一定要刷新到磁盘上

4.关闭服务器,收尾工作,会把没有刷新到磁盘的redolog刷到磁盘上

 

 

 

 

 

 

 

file初始值是2048  lsn初始值是8704

 

 

 

 

 

 

事 务 i d  什么是事务id?  为了保证事务唯一性的id      何时分配事务id?事务分只读事务--对临时表进行增删改的时候生成的事务id                 读写事务 --对用户表进行增删改操作分配事务id  如何开启事务id? start transaction read only   start transaction/begin  如何生成和维护事务id?

 

 

                                                                                                                                 max_trx_id,全局变量,如果需要分配事务id的时候会从max_trx_id取,之后max_trx_id加1,当达到256的时候会刷新到磁盘

 

undo

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:事务,max,256,mysql,磁盘,redo,id
来源: https://www.cnblogs.com/tangguanlan/p/15037761.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有