标签:log 抖动 数据库 flush 了解 内存 MySQL 磁盘 redo
转自:https://blog.csdn.net/nanchengyu/article/details/105627704
1.定义
一条SQL语句,正常执行的时候特别快,但是有时它就会变得特别慢,并且这样的场景很难复现,它不只随机,而且持续时间还很短,这样的情况我们一般称为数据库抖动。
当内存数据页与磁盘数据页内容不一致的时候,则将内存数据页称为脏页,将脏页写回磁盘的过程称为flush。在MySQL中,引发flush的情况主要有以下几种:
- InnoDB的redo log写满了。这时候系统会停止所有更新操作,把checkpoint往前推进,redo log留出空间可以继续写。在推进checkpoint时,需要把两点之间的日志中对应的脏页刷到磁盘中去。(应该是因为redo的log文件编号循环使用,文件用完了,就需要把之前的删掉了)
- MySQL系统内存不足。当需要新的内存页将磁盘数据载入内存时,就需要淘汰一些内存页,这个过程可能涉及到flush。
- MySQL认为系统“空闲”的时候。
- MySQL关闭之前。
标签:log,抖动,数据库,flush,了解,内存,MySQL,磁盘,redo 来源: https://www.cnblogs.com/BlueBlueSea/p/16558196.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。