有适用于 .NET 的 DBM 吗?
我正在寻找一个简单的 DBM 库,例如 BerkeleyDB 或京都橱柜,但本身适用于 .NET。 我需要管理超过一百万条记录(也许一千万条),并且可能以分层方式(最后一点不是强制性的,我们可以使用线性结构)。
这样的事情存在吗?
I'm looking for a simple DBM library such as BerkeleyDB or Kyoto Cabinet, but natively working for .NET.
I need to manage more than one million records (maybe ten millions), and possibly in a hierarchical way (this last point is not mandatory, we can work with a linear structure).
Does such a thing even exist?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我终于找到了 RaptorDB 它几乎完全符合我的需求。经过充分测试后,我将在这里写下我的评价。
编辑:经过测试,它并没有完全按预期工作。实际上它并不完全有效,所以我编写了自己的 DBM(它总是以这样的方式结束:))。在多线程环境中,我经常遇到数据库损坏的问题(是的,我已经检查了我的代码的线程安全性)。
如果有人有积极的反馈,我很感兴趣。
I finally found RaptorDB and it matches almost exactly my needs. I'll write down my evaluation here after it's been fully tested.
Edit: after testing, it was not exactly working as expected. Actually it was not exactly working, so I wrote my own DBM (it always ends up like this :)). The problems where in a multithreaded environnement, where I got DB corruption quite often (and yes, I've checked my code for thread safety).
If someone has a positive feedback, I'm interested.
SQL Server Compact Edition 是一个可行的选择,尽管我不确定您的意思是“本机适用于 .NET” - .NET 没有内置数据库(除非您计算 DataTables 和 XML,但我不计算)。
SQL Server Compact Edition is a viable choice, although I'm not sure what you mean by "natively working for .NET" - .NET has no built-in database (unless you count DataTables and XML, which I don't).
System.Data.SQLite 怎么样?
What about System.Data.SQLite?
假设您使用的是 Windows,我建议通过 ManagedEsent 互操作层尝试 ESENT 数据库引擎。 ESENT 内置于 Windows 中,具有与 BerkelyDB 类似的功能和性能水平。不同之处在于,ESENT 不仅仅是一个键/值存储,它还具有内置的列和索引,但 ESENT 没有复制功能。
Assuming you are on Windows I suggest trying the ESENT database engine via the ManagedEsent interop layer. ESENT is built into Windows and has a similar level of functionality and performance to BerkelyDB. The differences are that ESENT isn't just a key/value store, it has columns and indexes built in, but ESENT doesn't have replication.
我的公司为 Berkeley DB XML 库构建了一个 .NET 层,您可以在 http://bdbxml.net 下载该层。您将获得一个嵌入式 XML 数据库库,您可以在 .NET 中运行该数据库,并且可以根据需要使用不同语言绑定的其他平台上的数据库。如果您有兴趣,请随时与我联系并提出进一步的要求,以便我可以更好地了解您的解决方案架构,并看看我们是否适合您。
问候
My company has built a .NET layer for the Berkeley DB XML library, which you can download at http://bdbxml.net. You get an embedded XML database library that you can run in .NET and can use the databases on other platforms using the different language bindings if need be. If you're interested, feel free to contact me with further requirements so I can understand your solution architecture a little better and see if we can be a fit for you.
Regards