mysql中的缓存和缓冲区的区别是什么

mysql中的缓存和缓冲区的区别是什么?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强> mysql缓存区和缓冲区别有:

<代码>缓冲>

<代码> 代码缓存的核心作用是加快取用的速度,比如你一个很复杂的计算做完了,下次还要用结果,就把结果放手边一个好拿的地方存着,下次不用再算了。加快了数据取用的速度。

所以,如果你注意关心过存储系统的话,你会发现硬盘的读写缓冲/缓存名称是不一样的,叫<代码>写入缓冲器和<代码>读缓存>

当然很多时候宏观上说两者可能是混用的。比如实际上memcached很多人就是拿来读写都用的。不少时候非sql数据库也是。严格来说,CPU里的L2和L3缓存也都是读写兼用,因为你没法简单地定义CPU用它们的方法是读还是写。硬盘里也是个典型例子,缓冲和缓存都在一块空间上,到底是缓冲还是缓存吗?

不过仔细想一下,你说拿缓存做缓冲用行不行吗?当然行,只要能控制缓存淘汰逻辑就没有任何问题。

那么拿缓冲做缓存用呢?貌似在很特殊的情况下,能确定访问顺序的时候,也是可以的。简单想一下就明白,缓冲根据定义,需要随机存储吗?一般是不需要的。但缓存一定要。所以大多数时候用缓存代替缓冲区可以,反之就比较局限。这也是技术上说缓存和缓冲区的关键区别。

补充1:

不要误解缓冲区就是用来写的,缓存就是用来读的,读可以用缓冲区吗?当然可以,比如你想一批一批地处理读取而非有啥处理啥的时候,就可以用读缓冲区。写当然也可以用缓存,比如你的写入有很高的随机性的时候。具体什么场景用缓冲什么场景用缓存要根据场景的具体需要决定。

补充2:

不要误解缓存或缓冲就一定是内存或者存在什么高速媒介上的东西。只要相对高速即可。我完全可以在硬盘上存缓存,比如有些游戏会在运行时建立预编译的材质(暴露年龄),这本质上就是一种缓存,它存在速度缓慢的硬盘上,因为读硬盘依旧比重新编译要快.Buffer也同理,例如NTFS文件系统自己就有日志缓冲区,这个甚至明确拒绝放在任何易失缓存里。

关于mysql中的缓存和缓冲区的区别是什么问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

mysql中的缓存和缓冲区的区别是什么