我试图找出哪个数据库适合我的需要。我的 c++ 项目需要一个在出售给客户的设备上运行的数据库。主要是它只会将数据和事件记录到本地 SSD 磁盘上的数据库中。写入速度是最重要的,因为记录频率可高达 1000Hz(每 1ms 1 次写入)。必须能够从其他设备远程访问数据,以对数据进行图形可视化。我已经用 3rd 方服务器、mysql 和 postgres 测试了 sqlite。与其他相比,Postgres 似乎相当慢。正如我所读到的,如果并发性增加,Postgres 会变得更好,但在我的情况下,并发性将会非常低。我想知道是否还有其他数据库可以满足此类需求。它还觉得 mysql 和 postgres 对于这样的要求来说会有点矫枉过正。有什么建议么?
4 回答
PostgreSQL 是企业级数据库,不适合嵌入式设备。MySQL 虽然更小,但也非常适合嵌入式设备。SQLite 是最常见的,并且广泛用于嵌入式设备,甚至很小。
选择 sqlite,因为您的要求表明您的应用程序将在 DEVICES 上运行,并且大多数情况下我来宾他们是移动设备,几乎所有移动设备都支持 sqlite .... 所以去吧...
考虑一下 BerkeleyDB。如果您需要支持等,它是一个占用空间小的嵌入式数据库,拥有大量商业支持者。有开源版本和商业许可版本。不支持 SQL 查询,但除非您执行非常复杂的关系查询,否则这应该不是问题。并发支持非常好,尽管初始数据库配置往往很笨拙。
可扩展存储引擎形式有一个仅限 Microsoft 的替代方案,它是免费的,可在大多数版本的 Windows 上使用。只要您觉得不需要 SQL,还有各种其他类似“DBM”的简单嵌入式数据库。
您也可以考虑使用内存中的“NoSQL”式数据库;像 Redis 这样的东西会非常高效。
RDM Embedded可能非常适合您。我与 Raima 合作,该产品允许您远程访问数据,如果需要,您可以使用内存或混合磁盘/内存数据库功能 (www.raima.com/in-memory-database)至。在这种特殊情况下,对您有用的是 RDM 产品可以一起用于管理嵌入式、移动、桌面或服务器设备之间的数据。这可以通过我们的产品 RDM Embedded、RDM Mobile、RDM Workgroup 和 RDM Server 轻松设置。
如果您想在下载完整产品之前快速测试我们数据库的性能,请访问我们的数据库性能爆米花示例。