数据库缓存和池化之间有什么区别

问题描述 投票:0回答:1

我对通用概念最感兴趣,但是特别地,我需要了解这个概念,以便学习使用Swift / Vapor进行服务器端编程。但是,即使您不了解Swift / Vapor,也可以得到通用答案。

我发现为了连接到数据库,我可以使用以下两种方法:

func requestPooledConnection<Database>(to dbid: DatabaseIdentifier<Database>) -> Future<Database.Connection>

func requestCachedConnection<Database>(to database: DatabaseIdentifier<Database>) -> Future<Database.Connection>

现在我从文档中了解到(来源:https://docs.vapor.codes/3.0/database-kit/overview/#pools是:

  • 有了池,我可以重用现有的连接,或者如果不存在则创建一个新的连接
  • 使用池连接在事件循环之间不共享,以防止出现竞争状况
  • 每个事件循环中每个数据库每个都有一个[通常池
  • 使用缓存,每个数据库ID获得一个连接
  • 现在有点令人困惑,特别是术语“通常”,我还尝试搜索有关一般概念的更多文档(例如https://en.wikipedia.org/wiki/Connection_pool),看起来“缓存”和“池化”一词有时可互换使用。现在,我有兴趣了解这种差异,因为这对于正确优化我的Web服务很有用。但是在我看来,至少在我对Vapor文档的理解上,它们是非常相似的概念,我没有区别。有人可以澄清吗?
  • database sqlite vapor
    1个回答
    0
    投票
    缓存正在暂时保存数据库SQL,并且缓存正在保持与数据库的连接
    © www.soinside.com 2019 - 2024. All rights reserved.