【问题标题】:How well does UnQLite perform? How does it compare to SQLite (in performance)?UnQLite 的表现如何?它与 SQLite 相比如何(在性能方面)?
【发布时间】:2015-06-22 04:47:01
【问题描述】:

我已经研究了有关 SQLite 和 UnQLite 的信息,但仍有一些问题尚未得到解答。 UnQLite 似乎是在过去几年内发布的,这将归因于缺乏基准。 “性能”(读/写速度、查询、显着减速之前的平均数据库大小等)比较在这里可能有点苹果对橘子。

从我所看到的一切来看,两者相比起来几乎没有什么区别,即 SQLite 是一个关系数据库,而 UnQLite 是一个键值对和文档(通过 Jx9)数据库。它们都是可移植的、跨平台的和 32/64 位友好的,并且可以具有单写和多读连接。在 UnQLite 基准测试中可以找到的东西很少,而 SQLite 有很多跨各种(脚本)语言的不同实现。 SQLite 在in-memory databasesindexed dataread/write modes with varying data size 上有一些不同的性能。总体而言,SQLite 看起来既快速又可靠。

我在 UnQLite 上能找到的只有 unreliableconfusing。我似乎找不到任何东西有帮助。 UnQLite 的读取/写入速度似乎达到了峰值?使用 UnQLite 时推荐(不)哪些语言?有哪些已知的缺点和错误?


如果它有助于解释我的阴谋,我正在开发一个网络实用程序,它将通过网络接口之间的热交换读取和处理数据包。由于连接速度虽然不太可能达到 1 Gbps,但将有大量原始数据写入数据库。它仍处于开发的早期阶段,我必须找到一种平衡性能的方法。有很多因素,例如丢失的数据包,每次写入的大小,处理和移动数据的速度,需要多少组织,需要多少表,如果我可以实现多处理,每个有多依赖数据库在 HDD 速度等方面。我的数据将需要表格,但我是否必须将它们存储为关系仍然悬而未决。看到这两者如何与各自的优缺点相叠加(除了通常的 KVP 与关系辩论)可能会将我推向其中一个,或者,如果我足够疯狂的话,两者兼而有之

【问题讨论】:

  • 你也应该看看BerkeleyDB。安装它并进行自己的基准测试真的那么难吗?
  • @MikeSherrill'CatRecall' 我很惊讶看到有人对此做出回应,因为它现在有多“古老”。本周我将研究 BerkeleyDB。感谢您的建议!
  • BDB 是个好建议。 Kyotocabinet 也是一个不错的键/值存储,具有出色的性能。
  • 虽然没有直接解决您的问题,但我会质疑是否需要直接写入数据库 - 会考虑将数据转储到一系列文件/目录中(如果带宽是一个问题,可能分布在多个驱动器上),然后根据需要后处理到数据库中。

标签: sqlite database-performance unqlite


【解决方案1】:

我使用我写的python bindings 对 UnQLite 做了一些鬼混。 Python 绑定使用cython 并且非常快。

我从实验中发现,UnQLite 的键/值 API 非常快,可与其他 DBM 相媲美。不过,当您开始使用 Jx9 和文档存储时,事情会慢一些。

基本上看你需要什么...

如果您需要 SQL 和临时查询,我建议您使用 SQLite。它非常快速且非常灵活。

如果您只需要键和值,我会使用 leveldb 或 Rocksdb 之类的东西。

如果您想要一个轻量级的 JSON 文档存储,或带有一点“额外”的键/值,那么 UnQLite 可能是一个不错的选择。

【讨论】:

  • 感谢您的回复。自从我一个月前发布这篇文章以来,我被要求开发的软件已经收到了很多请求。 SQLite 不会根据数据库的大小以及需要“映射”的信息量以及要存储的数据类型来削减它。我很快会再次查看数据库,所以我会再次检查一下
  • SQLite 的限制并不是数据大小(高达几十 GB)或复杂性(它比那里的大多数其他 DBMS 更强大),主要限制是同时写入操作的数量(只有一个在 SQLite 中)。
  • 上面没有提到的一点,就是对所用平台的适用性。我已经在内存占用很小(代码和数据)的嵌入式系统中成功使用了 SQLite(所以我想 UnQLite 会很相似),而我认为,考虑到它的背景,例如 RocksDB 在服务器上运行会更快乐。
  • @coleifer 对于 2017 年用于便携式 Python 应用程序的快速 k-v,您有什么建议? LevelDB/sophia 不支持 Windows,所以我觉得它们不太相关,但 LMDB 和 UnQLite 支持,而且它们的 Python 包看起来很完整。很高兴听到您目前的意见。
猜你喜欢
  • 1970-01-01
  • 2021-09-01
  • 2014-07-09
  • 2011-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-10
  • 2013-07-23
相关资源
最近更新 更多