您现在的位置是:主页 > news > 佛教网站大全免费/企业品牌推广
佛教网站大全免费/企业品牌推广
admin2025/4/27 2:22:47【news】
简介佛教网站大全免费,企业品牌推广,现在什么网站做外贸的最好,北京房产网58同城网Mysql日志 WAL机制(Writer Ahead Logging) redo log 存在write pos和check pos 每次数据写入redo log,write pos向前移动,当write pos到达check pos的时候,check pos往后移动,这个移动mysql中对硬盘数据页的修改全…
Mysql日志
WAL机制(Writer Ahead Logging)
redo log
存在write pos和check pos
每次数据写入redo log,write pos向前移动,当write pos到达check pos的时候,check pos往后移动,这个移动mysql中对硬盘数据页的修改全部实施到响应的页中
#redo log的大小控制
innodb_log_files_in_group #redolog文件的个数
innodb_log_file_size #每个redolog文件的大小
binlog
记录MySQL中数据的修改
#格式
statement #binlog中记录SQL日志。
rows #rows格式记录每一个行的每一个字段的具体改动
mixed #默认记录sql, 由MySQL判断,可能会造成数据不一致的情况便会使用rows格式进行记录
#在性能上statement>mixed>rows, 在数据一致性上rows>mixed>statement
数据更新过程:
事务开启->更新数据->记录redo log标记为prepare状态->记录binlog->事务提交->标记redo log为commit状态
buffer pool
free list(free page)
lru list(clean page)
flush list(dirty page、clean page)(以midpoint为基点前百分之六十三为new列表区经常访问的数据,后面百分之三十七为old列表区,插入数据从midpoint插入)
新的数据读入buffer pool,有空闲页从free list删除free page放入lru列表;没有空闲页从lru列表淘汰默认页,将内存分配给新的数据
DoubleWrite
(数据库页大小与系统中的页大小不同)当发生数据库宕机时,可能 InnoDB存储引擎正在写入某个页到表中,而这个页只写了一部分,比如16KB的页,只写了前4KB,之后就发生了宕机,这种情况被称为部分写失效(partial page write)
redo log只能恢复数据完整的页
内存中 double write buffer 2MB
物理磁盘128页(2个区)2MB
脏页刷盘:
-
先将脏页复制到内存的Double write buffer,之后分两次顺序写入共享表空间中的物理磁盘
-
fsync同步磁盘时,该过程是顺序的,最后将double write buffer中的页分别写到对应的各表空间
发生故障在1时,磁盘上的数据是完整的,可以通过redo log恢复
发生故障在2时,磁盘数据成为脏数据,只能通过double write恢复
Change Buffer
对非唯一索引进行写操作时,内存中存在数据,直接操作,如果内存中不存在数据,先将操作存在change buffer中,等数据页加载到内存中再对其更新。
将 change buffer(默认buffer pool 的百分之二十五) 中的操作合并到原数据页,得到最新结果的过程称为 merge。以下情况会触发merge:
- 访问这个数据页;
- 后台master线程会定期 merge;
- 数据库缓冲池不够用时;
- 数据库正常关闭时;