有人能帮我理解缓冲区写是什么吗?我特别感兴趣的是学习它在上下文数据库系统中的功能,MySQL说!以下几点将是有益的:
中缓冲区写入的一个例子
我几次碰到这个词,但我看不出它的意思。
谢谢
发布于 2010-11-14 16:22:00
想象一下,一台拥有100米内存的计算机运行着一个数据库。数据库将数据存储在文件中,但也将其中的50M保存在缓冲区中的内存中。如果存在数据请求(SELECT或INSERT),则可以从内存中的缓冲区处理请求,这比一直到磁盘快得多。
缓冲访问数据库文件中的信息的请求本质上是对磁盘I/O的缓存请求。如果信息是插入的,那么DELETEd在很短的时间内就没有必要写入磁盘。不写(缓冲区)大大提高了性能。
如果请求将100 M的数据插入数据库,则必须完成所有挂起的写入(从缓冲区到磁盘)。然后,至少一半的新数据被写入磁盘。数据必须被写入,因为没有足够的内存来容纳1亿个新数据和5000万个旧数据,所有这些数据都驻留在内存中。这种将一些现有缓冲区写入磁盘的必要性是性能上的问题。幸运的是,只有保存更改或新记录的缓冲区才需要写入(或刷新)到磁盘。这些变化的缓冲区被称为“脏”。
在前面提到的100米插入后,大约50米的新数据可能暂时保存在内存中,直到它最方便地写入--因为不写会提高性能。将更改后的记录写回磁盘的一个方便时间是系统已经闲置了一段时间。当系统空闲时写入(缓冲区写入)不会降低性能。
https://stackoverflow.com/questions/4177854
复制相似问题