代码之家  ›  专栏  ›  技术社区  ›  Mohamad

什么是缓冲区写入?

  •  1
  • Mohamad  · 技术社区  · 14 年前

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

    1. 缓冲区写入的目的是什么
    2. 有什么性能优势吗
    3. 数据库应用程序中的缓冲区写入示例

    我见过这个词好几次,都看不出它的意思。

    谢谢

    1 回复  |  直到 14 年前
        1
  •  1
  •   frayser    14 年前

    想象一下一台有100兆内存的计算机,运行着一个数据库。数据库将数据存储在文件中,但也将其中50万存储在缓冲区的内存中。如果有一个数据请求(选择或插入),可以从内存中的缓冲区处理该请求,这比一直到磁盘要快得多。

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

    如果请求将100万数据插入数据库,那么必须完成所有挂起的写入(从缓冲区到磁盘)。然后至少一半的新数据被写入磁盘。数据必须被写入,因为没有足够的内存来存储100米的新数据和50米的旧数据。将一些现有缓冲区写入磁盘的必要性会影响性能。幸运的是,只有保存已更改或新记录的缓冲区需要写入(或刷新)到磁盘。那些更改的缓冲区被称为“脏的”。

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

    推荐文章