Caching Rails 3.1中的每个请求是否清除了准备好的语句缓存?

Caching Rails 3.1中的每个请求是否清除了准备好的语句缓存?,caching,ruby-on-rails-3.1,prepared-statement,Caching,Ruby On Rails 3.1,Prepared Statement,我已经查找了一段时间,没有看到任何关于Rails中何时清除准备好的语句缓存的内容。它是否在每次请求后都会像查询缓存一样被清除?来自: QueryCache缓存请求中生成的所有SELECT查询。如果发生任何插入或更新,则会清除缓存 我也一直在寻找这个,似乎因为准备好的语句缓存是在数据库连接器中实现的,所以应该清除数据库连接器 查看activerecord-oracle\u增强型适配器,在1.4.1版中添加了“statement\u limit”配置,默认为250。每当适配器向准备语句缓存中添加语句

我已经查找了一段时间,没有看到任何关于Rails中何时清除准备好的语句缓存的内容。它是否在每次请求后都会像查询缓存一样被清除?

来自:

QueryCache缓存请求中生成的所有SELECT查询。如果发生任何插入或更新,则会清除缓存


我也一直在寻找这个,似乎因为准备好的语句缓存是在数据库连接器中实现的,所以应该清除数据库连接器

查看activerecord-oracle\u增强型适配器,在1.4.1版中添加了“statement\u limit”配置,默认为250。每当适配器向准备语句缓存中添加语句时,它都会首先从缓存的末尾(只是一个数组)删除准备语句,直到它低于该限制

如果要清除所有准备好的语句,可以通过调用
connection.clear\u cache


这仅适用于oracle_增强型驱动程序。如果您使用的是postgresql或其他东西,请检查文档中的驱动程序。希望这能有所帮助。

谢谢。老实说,我不记得我为什么问这个问题,但这与Rails上的多天制有关。我想他们已经修补好了,这样查询缓存就不再是问题了。:)我投了反对票,因为
ActiveRecord::QueryCache
不是预处理语句的缓存位置。准备好的语句是专门为该查询编译的语句,这样Rails就不需要在每次请求时都重新编译它。QueryCache用于存储查询结果。