{eval=Array;=+count(Array);}

问答专栏Q & A COLUMN

当mysql的状态由Query变成sleep时,mysql处于sleep状态是什么样的?

lylwyy2016lylwyy2016 回答0 收藏1
问题描述:数据库:mysql 5.5 情况描述:当执行完一个查询插入语句mysql线程里面的状态会由Query变成sleep状态,然后sleep状态持续2-3s,则该线程关闭sql语句:insert into table select * from table问题:将内存中的数据写入磁盘?
收藏问题

1条回答

Object

Object

回答于2022-06-28 15:24

mysql状态sleep,其实就是空闲链接,刚刚执行的操作已经完成。


insert into table select * from table问题:将内存中的数据写入磁盘?


MySQL的操作,基本都是在内存完成,至于执行SQL会不会马上刷盘,取决于mysql配置的innodb_flush_log_at_tx_commit 参数。来决定是否刷日志到磁盘,刷数据至磁盘。


0: log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作,MySQL崩溃就会丢失1s的事务,无法自动事务恢复。

1: 每次commit时,刷redo日志,确定fsync刷盘,刷新成功才会返回,崩溃,系统断电都不会丢失事务。

2: 每次提交时,刷redo日志到文件系统,不调用fsync刷盘,5.6.6之前是每隔1s刷盘,之后的版本是通过参数innodb_flush_log_at_timeout设置,默认也是1s如果mysql崩溃,是可以自动事务恢复的,如果是系统断电,会丢失1s事务。


评论0 赞同0
  •  加载中...

相关问题

最新活动

您已邀请0人回答 查看邀请

我的邀请列表

  • 擅长该话题
  • 回答过该话题
  • 我关注的人
向帮助了您的网友说句感谢的话吧!
付费偷看金额在0.1-10元之间
<