2012-07-31 81 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