什么是缓冲区写?

时间:2010-11-14 14:11:06

标签: terminology buffer

有些人可以帮我理解缓冲区写入是什么吗? MySQL说,我对在上下文数据库系统中学习它的功能特别感兴趣!以下某些内容会有所帮助:

  1. 缓冲区写入的目的是什么
  2. 是否有任何性能优势
  3. 数据库应用程序中缓冲区写入的示例
  4. 我几次遇到这个词,我无法辨别其含义。

    由于

1 个答案:

答案 0 :(得分:1)

想象一台拥有100M内存的计算机,运行数据库。数据库将数据存储在文件中,但也将50M的数据保存在缓冲区的内存中。如果存在数据请求(SELECT或INSERT),则可以从内存中的缓冲区处理请求,这比一直到磁盘的速度快得多。

访问数据库文件中信息的缓冲请求实质上是缓存磁盘I / O请求。如果信息是INSERT-ed然后在很短的时间内删除,则可能不需要写入磁盘。不写(缓冲区)会大大提高性能。

如果要求将100M数据插入数据库,则必须完成所有挂起的写入(从缓冲区到磁盘)。然后至少有一半的新数据写入磁盘。必须写入数据,因为没有足够的内存用于100M新数据加上50M旧数据全部驻留在内存中。将一些现有缓冲区写入磁盘的这种必要性是性能损失。幸运的是,只有缓冲区保持更改或新记录需要写入(或刷新)到磁盘。那些改变的缓冲区被称为“脏”。

在上述100M的INSERT之后,可能会暂时将大约50M的新数据保存在内存中,直到最方便编写 - 因为不写入会提高性能。将写入已更改记录写回磁盘的方便时间是系统闲置一段时间。系统空闲时写入(缓冲区写入)不会降低性能。