2010-05-21 87 views

回答

1

是的,當索引不適合內存或進行全表掃描時。對不在內存中的數據進行聚合功能也需要很多(也可能是隨機的)光盤讀取。

對於一些基準:

查詢時間將顯著 取決於是否受影響的數據目前 駐留在內存或磁盤訪問是需要 。對於磁盤密集型 操作,磁盤順序和隨機I/O性能的特性也很重要。

http://www.sql-server-performance.com/articles/per/large_data_operations_p7.aspx

那裏,不要指望,如果你的數據庫大小> RAM大小相同的性能。

編輯: http://highscalability.com/充滿了類似的例子:

一旦數據庫不適合RAM你碰了壁。

http://highscalability.com/blog/2010/5/3/mocospace-architecture-3-billion-mobile-page-views-a-month.html

或者在這裏:

即使DB大小比RAM容量更大僅有10%這個測試顯示了2.6倍的性能下降。 http://www.mysqlperformanceblog.com/2010/04/08/fast-ssd-or-more-memory/

雖然,請記住,這是針對熱門數據,您要查詢的數據並且不能緩存。如果可以的話,你可以輕鬆地生活在更少的記憶中。

-1

所有數據庫操作都必須通過寫入磁盤進行備份,有更多的RAM有幫助,但不是必需的。

+1

但是讀取操作如何?如果數據不在內存中,則必須對光盤進行讀取訪問,這比從RAM中讀取要慢1000倍? – 2010-05-21 08:10:00

2

只有工作集或公用數據或當前使用的數據需要放入緩衝區緩存(又名數據緩存)。這也包括索引。

還有計劃緩存,網絡緩存+其他的東西也。 MS已經在SQL Server的內存管理上投入了大量工作,並且它運行良好,恕我直言。

一般來說,更多的RAM會有所幫助,但這不是必需的。

-1

將整個數據庫加載到RAM中是不實際的。數據庫最近可能高達1TB。任何人都不會購買這麼多的內存。即使可用RAM的大小是數據庫大小的十分之一,我認爲性能仍是最佳的。

+0

那裏我們必須切換到NoSQL的替代品嗎?如果必須從光盤讀取數據庫,數據庫如何高效? – 2010-05-21 08:14:31

+0

即使可用RAM的大小是數據庫大小的十分之一,我認爲性能仍然是最佳的。 – TrustyCoder 2010-05-21 08:15:10

+0

@CarlHörberg:你在做什麼?你幾乎永遠不會擁有內存中的所有數據,也不需要它。 – gbn 2010-05-21 09:32:05