gpt4 book ai didi

mysql - mysql查询缓存和缓冲池有什么区别?

转载 作者:行者123 更新时间:2023-12-04 01:29:17 25 4
gpt4 key购买 nike

我试图了解 mysql 架构,我遇到了两个概念。第一个是查询缓存,我的理解是它存储了至少运行过一次的查询,如果查询处理器看到缓存在那里的查询,它就不再去解析器并将结果直接带到缓存中。

但是,还有缓冲池,它是存储引擎缓冲管理器的一部分,根据我的理解,它有点做同样的事情。

所以我的问题是,如果逻辑层有缓存,为什么物理层也需要缓存?我在想,如果在查询缓存中找到一个查询,它将永远不会在缓冲池中搜索,如果在缓存中找不到该查询,那么它也永远不会从缓冲池中检索到。我错过了什么吗?

最佳答案

对于查询缓存,您已经掌握了它。它基于查询映射到精确查询结果的原始文本。它存在严重的缩放问题,这就是为什么 MySQL-8.0 removed it .

innodb缓冲池,是数据库底层数据和索引页的存储。它确保所有最近使用的数据都在磁盘之外,并且能够在不求助于(与 ram 相比)慢得多的存储的情况下进行查询。

因此,缓冲池服务于对同一数据的所有查询,而查询缓存仅服务于特定查询(以较大的可扩展性成本)。

关于mysql - mysql查询缓存和缓冲池有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61333318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com