現在使用しているBerkeleyDBの代わりに使用できるdbmのようなライブラリを探しています。私が切り替える主な理由は、BDBのライセンス料がかなり高いことです(オープンソースアプリでは無料ですが、雇用主はさまざまな理由でこの特定のアプリをオープンソースにしたくありません)。
私はqdbmを簡単に調べましたが、それが私のニーズを満たすようには見えません-たくさんのキー(数百万)と大きなデータ項目(> 1-5メガバイト)。検索を続ける前に、dbmのようなライブラリがたくさんあるように思われるので質問したいと思いました。
SQLite はパブリックドメインです。つまり、あらゆる目的に使用でき、広く使用され、サポートされています。
単純なレベルの間接参照で、dbm(qdbmも含む)のパフォーマンスを大幅に向上させ、並列処理を向上させることができます。キーを取得してハッシュし、data_dir/H(key)/
をデータベースとして使用してそれらのキーを格納します。最良の結果を得るには、ハッシュ出力を小さな値(たとえば)255に制限します。
このアプローチには、簡単に要約できる多くの利点があります。
ハッシュはおそらく暗号的に安全である必要はありません。ほぼ均一です。 DJBの cdb hash ほとんどの場合うまく機能します。
Windowsを使用している場合は、組み込みのesentデータベースエンジンを使用できます。 http://blogs.msdn.com/windowssdk/archive/2008/10/23/esent-extensible-storage-engine-api-in-the-windows-sdk.aspx
[〜#〜] jdbm [〜#〜] を試すことができます。これは、ディスク永続性を備えた無料の(Apache 2)Key-Valueストアです。シンプルなAPIと高性能
Postgres または [〜#〜] hsqldb [〜#〜] そして可能です H2データベース
db4oはかなり安価で高速ですが、Javaまたは.netでのみ使用できます
Firebird はあなたの親友です。