【问题标题】:Any DBM for .NET?.NET 的任何 DBM?
【发布时间】:2011-10-12 19:23:50
【问题描述】:

我正在寻找一个简单的 DBM 库,例如 BerkeleyDB 或 Kyoto Cabinet,但它本身就适用于 .NET。 我需要管理超过一百万条记录(可能是一千万条),并且可能以分层方式管理(最后一点不是强制性的,我们可以使用线性结构)。

这种东西真的存在吗?

【问题讨论】:

标签: .net berkeley-db dbm kyotocabinet


【解决方案1】:

我终于找到了RaptorDB,它几乎完全符合我的需求。我会在经过全面测试后在这里写下我的评价。

编辑:经过测试,它并没有完全按预期工作。实际上它并不完全有效,所以我编写了自己的 DBM(它总是这样结束 :))。在多线程环境中,我经常遇到数据库损坏的问题(是的,我已经检查了我的代码的线程安全性)。 如果有人有积极的反馈,我很感兴趣。

【讨论】:

  • 我也在试验 RaptorDB,但我的要求比你的要少得多。我只需要一个唯一的键值存储来将 json 地理编码结果保存几个月。本质上是 RESTful 服务响应的非易失性缓存。 RaptorDB 似乎很合适!
【解决方案2】:

SQL Server Compact Edition 是一个可行的选择,尽管我不确定您所说的“为 .NET 原生工作”是什么意思 - .NET 没有内置数据库(除非您计算 DataTables 和 XML,我没有)。

【讨论】:

  • 我更喜欢用 .NET 编写的东西,因为该应用程序将是多平台的。我也想要一个简单的库。
  • 我知道没有用 .NET 编写的数据库引擎(尝试起来有点疯狂)。 SqlCE 是一个非常简单易用的库,它可以毫不费力地处理一百万条记录。
  • 既然可以获得(几乎)SQL Server 的全部功能,为什么还要寻找“简单库”?免费吗?
  • 因为像 BerkeyDB 或 Kyoto Cabinet 这样的典型表要快得多 :)(此外,我只需要一个简单的键/值存储)
  • en.wikipedia.org/wiki/Dbm 但除此之外,我在 RDBM 和 DBM 之间找不到任何基准。汽车和自行车之间也没有速度基准,但结果通常也很明显:)
【解决方案3】:

【讨论】:

  • 我不确定 SQLite 的性能(我更新了我的问题,因为我需要能够快速搜索一百万条记录)。我也不确定文件碎片整理是否有效。
【解决方案4】:

假设您使用的是 Windows,我建议您通过 ManagedEsent 互操作层尝试 ESENT 数据库引擎。 ESENT 内置于 Windows 中,具有与 BerkelyDB 类似的功能和性能水平。不同之处在于 ESENT 不仅仅是一个键/值存储,它具有内置的列和索引,但 ESENT 没有复制。

【讨论】:

  • 谢谢,但应用程序将是多平台的,因此本机代码,尤其是系统组件,不是最佳选择。
【解决方案5】:

我的公司已经为 Berkeley DB XML 库构建了一个 .NET 层,您可以在 http://bdbxml.net 下载它。您将获得一个嵌入式 XML 数据库库,该库可以在 .NET 中运行,并且可以在需要时使用不同的语言绑定在其他平台上使用数据库。如果您有兴趣,请随时与我联系以了解更多要求,以便我更好地了解您的解决方案架构,看看我们是否适合您。

问候

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多