這可能聽起來很愚蠢......
假設一個場景,其中緩存中有100,000個記錄,密鑰爲someId
。
現在數據庫擁有1,00,000條記錄,主要記錄爲someId
。
我的問題是在這種情況下會更快?訪問緩存或使用where
子句敲擊數據庫?
讓我們假設使用的緩存是EHCache,DB是MySql。什麼會更快 - 當EHCache或數據庫都有相同的記錄時,會發生什麼?
1
A
回答
2
緩存是本地的,位於RAM中,數據庫是遠程的,數據位於磁盤中(最常見)。關鍵區別!
看着Numbers Everyone Should Know (slide #13)你正在看大約100-1000ns(從高速緩存讀取數據)VS 20000 ns(通過1Gbps網絡發送2Kb)。所以即使排除磁盤讀取差異已經是〜20倍。如果您的磁盤讀取帳戶(10 000 000 ns),則差異將變爲10 000 x。
但這些都是理論計算;你需要測量自己。
+0
偉大的鏈接@ mindas..thanks :) – Anubhab 2013-03-11 13:06:13
相關問題
- 1. 當數據庫脫機時,symfony會發生什麼情況?
- 2. 當發生異常時記錄什麼
- 3. 當我ping 127.0.0.1時會發生什麼
- 4. 當redis重載時會發生什麼?
- 5. 當crontabs重疊時會發生什麼?
- 6. 當AsyncTasks已滿時會發生什麼?
- 7. 當我編譯時會發生什麼?
- 8. 什麼時候會發生?
- 9. 當路徑沒有目錄分隔符時會發生什麼?
- 10. int [] copy = data; //當數據是數組時會發生什麼?
- 11. 會發生什麼?
- 12. 會發生什麼?
- 13. 會發生什麼?
- 14. 當您加入「或」或SQL時會發生什麼?
- 15. 什麼是H.450.2?當它不存在時會發生什麼?
- 16. 發生故障時會發生什麼?
- 17. 當Hbase表被刪除時,數據會發生什麼變化?
- 18. 當你同時觸摸兩個按鈕時會發生什麼
- 19. 當兩個對象相等時會發生什麼
- 20. 爲什麼Guid在保存記錄時會發生變化?
- 21. 當發生javascript運行時錯誤時會發生什麼?
- 22. 爲什麼會有這麼多的Rails記錄器,爲什麼會有鎖?
- 23. SQL Server - 當表中的一行更新時會發生什麼?
- 24. Facebook的評論,當域名更改時會發生什麼?
- 25. 當數據庫getByPrimaryKey函數無法找到記錄時,通常會發生什麼?
- 26. PHP腳本在多次同時訪問MySQL數據庫時會發生什麼?
- 27. 當alloc或allocWithZone被調用時會發生什麼?
- 28. 當我讀/寫同一個文件時會發生什麼?
- 29. 首先會發生什麼,MovieClip.onLoad()或Event.ENTER_FRAME?
- 30. 什麼會觸發(或生成)KeyEvent.ACTION_MULTIPLE?
我可以知道downvoting的原因嗎? – Anubhab 2013-03-09 09:47:45