我正在使用ActiveRecord 3.0(不含導軌)構建命令行應用程序。如何清除ActiveRecord維護的查詢緩存?清除ActiveRecord緩存
18
A
回答
2
23
看看方法clear_query_cache
對於第一近似:
ActiveRecord::Base.connection.query_cache.clear
0
通常情況下,當你看到數據庫的查詢緩存,你的數據庫做緩存,而不是ActiveRecord的,這意味着您需要清除數據庫級別的緩存和緩衝區,而不是ActiveRecord級別。
例如,要清除Postgres的緩存和Mac上的緩衝區,您將執行sudo purge
,這會強制刷新和清空磁盤緩存。
要清除Postgres的高速緩存和緩衝區在Linux上,你會停機的Postgres,刪除緩存,並再次開始上升的Postgres的:
service postgresql stop
sync
echo 3 > /proc/sys/vm/drop_caches
service postgresql start
延伸閱讀:
相關問題
- 1. 清除緩存
- 2. 緩存清除
- 3. Django緩存 - 清除緩存
- 4. 清除幀緩存
- 5. 清除memory_get_peak_usage緩存
- 6. 清除緩存,ObjectCacheManager
- 7. SILEX清除緩存
- 8. repcached清除緩存
- 9. 清除asp緩存?
- 10. 清除緩存7
- 11. 清除PhoneGap緩存
- 12. 清除ADF緩存
- 13. 清除PivotItem緩存
- 14. 清除UITableView緩存
- 15. window.location.reload清除緩存
- 16. 清除緩存7.3
- 17. 清除dom緩存
- 18. 清除bitbucket緩存
- 19. SDWebImage清除緩存
- 20. 清除NSURLConnection緩存
- 21. 清除SDWebImage緩存
- 22. Wampserver緩存清除
- 23. plone.app.caching和settings清除清除緩存
- 24. 查看並清除Postgres緩存/緩存?
- 25. SQL - 清除執行緩存
- 26. 清除Master.Page上的緩存
- 27. 清除緩存listview android
- 28. 手動清除緩存HHVM
- 29. 無法清除ASP.NET緩存
- 30. 如何清除Sprockets緩存?
我見過這個方法。但是,在MyModel.connection上調用它似乎沒有任何作用。我正在做批量插入,並需要清除查詢緩存,以便ActiveRecord可以看到新記錄,但到目前爲止我還沒有成功。 – clacke 2011-10-20 18:11:46
看來,在Rails 2中,您可以通過「ActiveRecord :: Base.query_cache.clear_query_cache」訪問查詢緩存,但現在該位置消失了。就像我說的那樣,在模型的連接上做這件事情是行不通的。最後,我解決了這個問題,完全落後於AR的背後,也是在質量插入之後的查詢。 – clacke 2011-10-20 19:39:29
@ clacke你能發佈你發現的最終解決方案嗎(「完全落後於AR的背部」)?還是你間接地說你使用SQL而不是AR? – jvatic 2012-01-04 20:42:28