2012-07-31 47 views
2

我想弄清楚哪個數據庫適合我的需要。我的C++項目需要一個數據庫,它將在銷售給客戶的設備上運行。主要它只會將數據和事件記錄到本地SSD磁盤上的數據庫中。寫入速度是最重要的,因爲記錄頻率可高達1000Hz(每1ms寫入1次)。必須能夠從其他設備遠程訪問數據以進行數據的圖形可視化。我已經用第三方服務器,mysql和postgres測試過sqlite。與其他人相比,Postgres似乎很慢。正如我讀過的,如果併發性會增加,Postgres會變得很好,但在我的情況下,併發性會很低。 我想知道是否有任何其他數據庫的這種需求。它也覺得mysql和postgres對於這樣的需求是一個小問題。有什麼建議麼?基於服務器的嵌入式數據庫

+0

實際上並不是嵌入式設備 - 運行原子處理器和1 GB RAM + SSD磁盤。此外,數據庫代碼應該是跨平臺的。 SQLite擔心的是它沒有免費的可靠服務器。 Postgres會很好,因爲它是開源和免費的,但據我測試,與SQLite或MySQL相比,寫入速度太慢。它會是這樣嗎?如果只能免費使用,MySQL將是一個不錯的選擇。據我所知,服務器部分可以自由使用,但官方連接器已獲得許可。因爲我需要一個C++連接器,社區列表中沒有任何連接器。 – 2012-08-01 15:49:31

回答

1

轉到SQLite的,因爲你的應用將設備上運行,您的要求規定主要是我客人,他們是移動設備,幾乎所有的移動設備都支持源碼....所以要爲它...

3

的PostgreSQL是一個企業質量數據庫,不適合嵌入式設備。 MySQL雖然體積較小,但在嵌入式設備中也會非常緊密。 SQLite是最常見的,並且廣泛用於嵌入式設備,甚至非常小。

0

考慮BerkeleyDB。如果您需要支持,它是一個佔地面積小的嵌入式數據庫,具有大量商業支持。有開源版本以及商業授權版本。沒有對SQL查詢的支持,但除非你正在做相當複雜的關係查詢,否則這應該不成問題。併發支持非常好,儘管初始數據庫配置往往很笨拙。

在可擴展存儲引擎的形式中存在微軟唯一的選擇,這在大多數Windows版本中都是免費的。只要你不覺得你需要SQL,還有其他各種'DBM'-like簡單的嵌入式數據庫。

您可能還會考慮內存中的'NoSQL'風格的數據庫;像Redis這樣的東西會非常高效。

0

​​可能很適合你。我使用Raima,並且該產品可讓您遠程訪問數據,並且您可以利用內存或混合磁盤/內存數據庫功能(www.raima.com/in-memory-database)(如果需要)至。在這種特殊情況下對您有用的是,RDM產品可以一起用於管理嵌入式,移動,桌面或服務器設備之間的數據。這可以通過我們的產品,嵌入式RDM,RDM移動,RDM工作組和RDM服務器輕鬆設置。

如果要在下載完整產品之前快速測試數據庫的性能,請轉至我們的Database Performance Popcorn Samples