IT外包网管服务,谈InnoDB的基本原理

发布者:上海IT外包来源:http://www.lanmon.net点击数:1036

蓝盟IT小贴士,来喽!
InnoDB将数据存储在磁盘上,以实现数据的永久化。 但是,在面临大量要求的情况下,电脑CPU的处理速度和磁盘的IO速度的差过大,为了提高整体效率,InnoDB导入了缓冲池。
如果有询问法数据的请求,但高速缓存区池中不存在,则搜索磁盘并将匹配的数据放入高速缓存区池。 同样,当系统提示修改数据时,MySQL不直接修改磁盘,而是先修改缓冲池页上的数据,然后再刷新磁盘。 这就是缓冲池的作用:读取速度更快,写入速度更快,与磁盘的IO操作更低。
缓冲池称为白色,是指将磁盘内的数据存入内存。 既然是内存,可能无法分配内存空间。 因此,缓冲池采用LRU算法,在缓冲池中没有空页的情况下,进行页的淘汰。 然而,采用这种算法引起了被称作缓冲池污染的问题。
执行批量扫描或全表扫描时,缓冲池中的所有无线热点页可能会被替换。 这可能导致MySQL性能悬崖式的降低。 因此,InnoDB优化了LRU,避免了这个问题。

要插入缓冲区的操作是更新或插入,最坏的情况是缓冲池中没有需要更新的数据。 在这种情况下,有以下两个方案。

一个数据直接写入磁盘
在数据达到阈值(例如50条)之前,不会批量写入磁盘
显然,第二种情况在减少与磁盘IO的交互方面很有优势。
我们谈到了插入缓冲区,所以需要写两次。 我认为这两个InnoDB的特性是相辅相成的。
插入缓冲区可以提高MySQL的性能,两次写入可以提高数据的可靠性。 已知当数据仍在缓冲池中时,机器将出现故障,重做日志将进行恢复。 但是,从缓冲池中将数据恢复到磁盘的时候怎么样?

这称为部分写入无效,此时重新进行计程仪无法解决问题。

文/上海蓝盟   IT外包专家

IT外包
>
400-635-8089
立即
咨询
电话咨询
服务热线
400-635-8089
微信咨询
微信咨询
微信咨询
公众号
公众号
公众号
返回顶部