暂无图片
请问mysql的log thread是负责写什么的?写redo log还是redo log和binlog都写?
我来答
分享
谢国红
2024-04-12
请问mysql的log thread是负责写什么的?写redo log还是redo log和binlog都写?

show engine innodb status;输出如下

I/O thre--------

FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread) 《--这个线程
I/O thread 2 state: waiting for completed aio requests (read thread)
I/O thread 3 state: waiting for completed aio requests (read thread)
I/O thread 4 state: waiting for completed aio requests (read thread)
I/O thread 5 state: waiting for completed aio requests (read thread)
I/O thread 6 state: waiting for completed aio requests (write thread)
I/O thread 7 state: waiting for completed aio requests (write thread)
I/O thread 8 state: waiting for completed aio requests (write thread)
I/O thread 9 state: waiting for completed aio requests (write thread)


请问log thread是写redo log的还是binlog的?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
yBmZlQzJ

在MySQL中,log thread主要负责写入两种类型的日志:重做日志(redo log)和二进制日志(binary log)。

重做日志(Redo Log):重做日志是InnoDB存储引擎特有的日志,用于确保事务的持久性和数据的恢复。当事务进行修改操作时,这些修改会被记录到重做日志中。在系统崩溃或者重启的情况下,InnoDB存储引擎可以使用重做日志中的信息来重放事务,以此来恢复未提交事务修改的数据,确保数据的一致性。

二进制日志(Binary Log):二进制日志记录了对数据库执行的所有更改操作,这些操作可以是表结构的变更,也可以是数据的插入、更新和删除。二进制日志主要用于复制和数据恢复。在复制架构中,主服务器上的二进制日志会被发送到从服务器,从服务器根据这些日志来重放更改,以此来保持与主服务器的数据同步。同时,二进制日志也可以用于数据恢复,通过应用日志中的更改来恢复到特定的时间点。

log thread在MySQL中是独立于其他线程工作的,它负责将这些日志写入到磁盘中。对于InnoDB存储引擎,log thread会将重做日志写入到重做日志文件中;而对于二进制日志,log_thread会将其写入到二进制日志文件中。

暂无图片 评论
暂无图片 有用 0
打赏 0
everything

只写redo log。redo log也叫innodb log,由innodb的log 线程负责;binlog是server层的日志,写binlog的日志叫binlog dump

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
mysql怎么检查主从一致?
回答 2
查看两个yes和一个id号:SlaveIORunning:YESSlaveSQLRunning:YES截取远程Position号mysqlh192.168.18.31u'ceshi'p123e'sho
求mysql主从手工切换规范或者步骤参考?
回答 1
仅供参考一、切换前确认1、iptables规则一致2、权限库一样,如不一样导出3、从库配置文件确认bindip监听ip修改readonly只读是否去除serverid是否和其他从库重复二、正式切换1、
mysql inodb_index_stats 这个表在5.5的版本不存在吗?
回答 1
5.6.6开始有
sqlsever安装失败,下载mysql会不会也失败?
回答 4
你机器安装office没有成功,可不可以安装QQ呢?
MHA是怎样获取latest slave的?
回答 1
已采纳
先使用showslavestatus命令获取masterlogfile、readmasterlogpos参数的值,然后通过比较这两个值来获取latestslave。
mysql用truncate会不会影像索引?
回答 1
已采纳
不会
为什么我建表的时候输出一直提示数据库未选择呢?标点符号,语法都是正确的 ​
回答 2
已采纳
不要在系统库建表。createdatabasetest;usetest;然后执行你的createtable就可以了
MySQL怎么insert一个blob类型的数据
回答 1
已采纳
参考下这个:https://www.modb.pro/db/12056
MySQL如何跨库连表查询多个表名类似的表?
回答 2
查T开头的表名:selecttableschema,tablename,tablerowsfrominformationschema.tableswheretablenamelike'T%';
如何通过系统表,把执行超过10分钟但是还没有执行完的语句给查到?5.7社区版下
回答 3
selectfrom informationschema.innodbtrx查看长时间执行事务,可以根据事务启动时间来判断执行时长