Closed
Description
由于在写的时候不能产生有顺序的 append 操作,而需要进行 insert 操作,将会读取整个 B+ 树节点到内存,在插入这条记录后会将整个节点写回磁盘,这种操作在记录占用空间比较大的情况下,性能下降明显。
mysql在写入数据的时候,如果数据页不在缓存中,会把变更写到change buffer,并写redo log,就返回插入成功了。等下次读取这条数据的时候,会把数据页读入缓存并与change buffer中的变更进行merge,此时产生了一个脏页,等触发刷脏页的逻辑的时候,才会写入磁盘。请问如果主键不自增,不是顺序写入的话,为什么每次insert都会触发写磁盘的操作呢?
Metadata
Metadata
Assignees
Labels
No labels
Activity