我已经研究过关于SQLite和UnQLite的内容,但仍然有一些事情尚未得到解答。 UnQLite似乎在过去几年内已经发布,这归因于缺乏基准。 "性能" (读/写速度,查询,平均数据库大小在显着减速之前等)比较可能在某种程度上是苹果到橙子。
从我所看到的两者相比,两者之间的差异很小,即SQLite是一个关系数据库,而UnQLite是一个键值对和文档(通过Jx9)数据库。它们既可移植,也可以是跨平台,32/64位友好,并且可以具有单写和多读连接。在UnQLite基准测试中可以找到很少的东西,而SQLite在各种(脚本)语言中有不同的实现。 SQLite在in-memory databases,indexed data和read/write modes with varying data size之间具有不同的性能。整体SQLite显得快速可靠。
我在UnQLite上找到的所有内容都是unreliable和confusing。我似乎无法找到任何有用的东西。 UnQLite的读取/写入速度似乎达到了顶峰?使用UnQLite时,建议使用哪些语言?有哪些已知的缺点和错误?
如果能够解释我的阴谋,我正在开发一个网络实用程序,它将通过网络接口之间的热交换来读取和处理数据包。由于连接虽然不太可能达到最高1 Gbps的速度,但会有大量原始数据写入数据库。它还处于开发的早期阶段,我必须找到一种平衡性能的方法。有很多因素,例如丢失数据包,每个写入大小有多大,处理和移动数据的速度,需要多少组织,需要多少表,是否可以实现多处理,每个如何依赖数据库是在硬盘速度等等。我的数据将需要表格,但我是否必须存储它们作为关系仍然在空中。看看这两者如何与他们自己的利弊相提并论(除了通常的KVP与关系辩论之外)可能会把我推向任何一方,或者,如果我已经疯狂了,两者兼而有之
答案 0 :(得分:13)
我使用python bindings使用this wiki post做了一些愚弄。 Python绑定使用cython
并且非常快。
我从实验中发现,与其他DBM相比,UnQLite的键/值API非常快。但是,当你开始使用Jx9和文档存储时,事情会变慢。
基本上取决于你需要什么......
如果您想要SQL和临时查询,我建议使用SQLite。它非常快速且非常灵活。
如果您只想要键和值,我会使用像leveldb或rocksdb这样的东西。
如果你想要一个轻量级的JSON文档存储,或者带有一点" extra"的键/值,那么UnQLite可能是个不错的选择。