In-Memory-Database

計算記憶體數據庫的 RAM 需求

  • September 5, 2014

一般來說,記憶體數據庫需要多少 RAM?我認為它需要足夠的 RAM 用於:

  • 作業系統和通用系統服務,以及
  • 數據庫管理系統,更多
  • 整個數據庫(與儲存在磁碟上的數量相同),加上
  • 臨時數據庫表
  • 有些懈怠

考慮到其中最大的組成部分通常是整個數據庫的大小,那麼它需要執行正常磁碟數據庫所需的正常 RAM 大小(例如 16 GB)加上數據庫的磁碟大小(假設一個相當大的數據庫需要 50 GB);在此範例中,至少有 76 GB 以及用於數據庫逐漸增長的空間。

我知道對於不同的 DBMS(例如 SAP Hana 或 Oracle TimesTen),答案會有所不同,但我問的是計算的一般組成部分。

這個分析準確嗎,還是我錯過了計算的一些重要組成部分?

查看這些連結 - 第一個是Michael StonebrakerVoltDB。他是他所稱的 NewSQL 背後的主要驅動力之一——他相信 OldSQL(即傳統的 RDBMS 系統、您的 Oracle、MySQL 和 SQL Server)正在做大量的緩沖和鎖存等工作。在他的 VoltDB(基於 Java)系統中,事務一直執行到完成,並且不會與其他事務競爭系統資源。

要記住的關鍵是它是一個無共享的記憶體架構。他認為這對 OLTP 有利,但對 OLAP 不利,他提倡柱狀儲存,例如他創立的 Vertica,後來被 HP 收購。

Stonebraker 還認為,NoSQL 犧牲了SQL 和 ACID 來換取性能,這讓孩子們望而卻步。

Microsoft 的 Hekaton 是基於非常相似的想法 ( 1 , 2 ),這並不奇怪,因為有一位 Microsoft 人是 Stronebraker 的一些工作的合著者(目前找不到參考資料)。AFAICS 的主要區別在於 Hekaton 的儲存過程被編譯為本機程式碼。

我給出的參考資料有點模糊和籠統,但第一個微軟連結說你的記憶應該是你的數據的兩倍。AIUI,這條規則不是一成不變的,而是取決於你的應用程序的功能,但它是一個很好的起點:-)。這是一個引人入勝的領域,值得一讀(去年寫了一篇關於它的文章),那裡有很多東西。

還可以查看這些(123)。

引用自:https://dba.stackexchange.com/questions/75750