2011-02-25 29 views
4

美好的一天,每個人。需要幫助選擇數據庫服務器

最近我被給了一個任務來開發一個應用程序來自動化股票交易的某些方面。在處理初始架構時,出現了數據庫困境。我需要的是一個快速處理大量數據的快速數據庫引擎。我在通用編程方面經驗豐富,但我從未面臨開發高負載數據庫體系結構的任務。在我的一個項目中,我開發了一個簡單的MSSQL數據庫模式,其中包含多個多對多關係,但就是這樣。

我在找的是關於選擇最合適的數據庫引擎的一些建議,以及一些指向描述高負載數據庫開發的各種手冊或書籍的指針。是該項目的

具體細節如下:

  • 操作系統:Windows NT系列(服務器2008/7)
  • 主要平臺:.NET與C#
  • 數據庫結構:一個表來保存主項目和兩個或三個帶有外鍵的表格來保存附加信息。
  • 數據庫中選擇要求:需要超高速由外鍵和外鍵的列(大概DATETIME)
  • 數據庫中插入要求之一的組合選擇:越快越好:)

如果會有顯着的性能提升,有些部分可以用C++編寫,並且可以通過託管界面連接到系統的其他部分。

所以再一次:給出所有我剛輸入的內容,請給我一些關於我的項目最好的數據庫的建議。鏈接或參考有關該主題的一些手冊和書籍也非常感謝。

編輯:我需要在30-50毫秒內約2次插入3-5行,我需要用0-2的WHERE子句做類似速率的SELECT。

+2

它是否必須是基於SQL的數據庫?有專門的高頻交易數據庫。一個昂貴的數據庫使用了很多Kdb +,請參閱http://kx.com/。 – stephan 2011-02-25 07:54:24

+0

@stephan不,它不一定是基於SQL的數據庫。感謝您的鏈接,我們將把Kdb +視爲其中一個選項。 – 2011-02-25 08:07:43

回答

3

該技術無關緊要。這是關於硬件的。

外國 鍵和外鍵 和列的一個組合(大概 DATETIME)需要超快速的選擇

所以,你需要這樣的東西填補了超微72盤計算機系統SSD和256GB內存作爲緩存。就那麼簡單。根據需要添加處理器。

問題是它是昂貴的,但最終數據庫是關於IO。點。

另外,您也可以使用點擊流數據庫(KD +)和intead,向他們要求的硬件支付30.000美元20.000美元用於開始的最小軟件許可證。

我知道這聽起來很難,但adatabase的速度 - 除非你做了愚蠢的事情,殺死性能 - 是硬件。 PRettym例如IOPS預算(獨立IOPS每秒)。而不是關於軟件。

+0

是的,您顯然認爲數據庫性能的主要瓶頸是IO。我只是想,也許某些數據庫在指定的環境中會比其他數據庫稍微好一些。 – 2011-02-25 07:58:55

+0

是的,但這不會影響硬件的IO影響。 – TomTom 2011-02-25 09:56:23

1

你的清單只是基本要求。你幾乎可以使用任何數據庫,雖然我不會推薦MySQL。當您執行多次插入時,它會減慢一點,因爲這會清除查詢緩存。其他DBMS更好地處理這個問題。

但是再次。三張桌子......你幾乎可以在Access中做到這一點。

什麼沒有指定是您所期望的讀取和插入量。我們可憐的小MySQL數據庫每天爲我們的網站運行數百萬次查詢。只有一小部分是插入和更新(DML語句),所以MySQL處理得很好,但查詢的數量,其複雜性和涉及的數據量是比表數量更重要的數據。

+0

是的,我絕對可以在Access中使用它,但速度會快嗎? :)如果有幫助,我可以提供有關該項目的更多詳細信息。 – 2011-02-25 07:17:52

+0

訪問速度不會很快。如果您正在考慮基於文件的文件,請使用Sql Server精簡版。 – Dubmun 2011-02-25 07:20:00

+0

編輯我的帖子以包含有關插入和選擇的信息。我正在考慮每個選項,但考慮到大量數據,我真的懷疑所有這些東西都適合RAM。我理想的需要是保存內存中最新記錄並將舊內容轉儲到磁盤。 – 2011-02-25 07:25:54

0

如果您已經有Sql Server的經驗,我會建議以某種形式堅持使用它。另外,Sql Server和.NET有很好的協同作用(很明顯),因爲它們都是微軟產品。

0

如果不一定是SQL,也許像Cassandra這樣的系統是一個不錯的選擇。這些類型的數據庫被社交媒體等高頻網站所使用。不過,不知道它如何在Windows服務器下安裝。