一条SQL语句正常执行的时候特别快,有时候会变得特别慢。但是这种场景不是很常见。
内存数据页跟磁盘数据页内容不一致的时候,我们称这个内存为脏页。
内存数据写入到磁盘后,内存和磁盘上的数据页的内容一致,称为干净页。
执行较快的更新操作,其实是在写内存,MySQL抖动的瞬间,是在刷脏页,即把脏页的数据写入磁盘(该过程也叫flush)。
这种情况尽量避免,一旦redo log 写满,系统会拒绝更新操作,此时更新数为0。
InnoDB采用缓存来管理内存页,内存页有以下三种状态:
如果有以下情况会对性能产生影响:
因此InnoDB 需要控制脏页的比例,避免上述情况。
对性能基本无影响。
对性能基本无影响。