2009-06-30 17 views
4

私は (sqlite、berkeley db)のような組み込みデータベースを使用したいので、これらのデータベースのベンチマークを開始するにはどうすればよいのですか?sqlite、berkeley dbベンチマーク

+0

ここにいくつかの情報を含むリンク: [http://www.perlmonks.org/?node_id=152749](http://www.perlmonks.org/?node_id=152749) –

+0

その調査は7歳です起動するベンチマークが非常に悪い。これは、ベンチマークをしない方法の例としてのみ良いことです。 – Lucky

+0

あなたがパフォーマンスを見ているなら、私はBerkeley組み込みDBを使っています。これは、そのスペクトルで最高の読み取りアクセスの1つを提供するキーバリューベースのストレージです。しかし、コンパイルする必要のあるクエリ言語を公開しないようにする。 SQLiteをBDBの上に置くと、BDBの使用が簡単になりますが、確かに追加コストがかかるでしょう。また、Berkeley DBで更新が高価であるため、最大の作成操作と読み取り操作、最小限の更新操作がある場合は、BDBを考慮してください。 – Varun

答えて

3

ベンチマークについて考える前に、データベースの機能を比較する必要があります。

のSQLiteとBDBは、彼らがサポートする機能が全く異なり、データが複雑な場合

2

私は同意する(つまり、あなたのデータがレイアウトされている方法の場合)、私は、リレーショナルデータを簡単に照会するためのSQLiteをお勧めしたいですオサマと一緒に最初にフィーチャーを比較してください。

しかし、私は "複雑な"データが自動的にsqliteに向かうべきではないという意見に反対します。私はベンチマークを見たことがなく(何も書いても気にしませんでしたが)、BerkeleyDBがほぼ毎回優れた性能を発揮すると言っています。

と言われています。私はそれが私自身の決定を下すのに使うとは思わない。それはそれらの機能に戻ります。私が望むのはシンプルなデータストアであれば、sqliteを選択するのはおそらく簡単になるからです。同様に、任意のフィールドで任意のフィールドにデータを照会できるようにしたい場合や、エンタープライズSQLデータベースに格納する場合は、将来の移行が容易になるためsqliteを使用します。しかし、私はシンプルなデータストアを超え、多くの読者がいるライターなど、トランザクションの安全性、高い並行性、高可用性を目指している場合私はかなり明確な "クエリ" 、私はおそらくBDBがほしいと思う。

私のデータの「複雑さ」は実際にはこれらの方程式に入っていないことに注意してください。理由は簡単です。 BDBは私のオブジェクトをネイティブのシリアライズされた形式で保持できます。どの味のSqlにも、IMOが私のアプリケーションを複雑にする有名なインピーダンスの不一致があります。

BDBを真剣に検討している場合は、の先頭にとなるストレージの種類を決定する必要があります.BDBが提供するストアの種類は必ずしも互換性がありません。

5

最近、OracleはBDBのbtreeストレージの上にsqlite3インタフェースを追加しました。したがって、sqlite3に対してコードを記述してからBDBをプラグインできるようにする必要があります。キャッチはライセンス供与です。 BDBはあなたにオープンソースを支払うか、オープンソースにするかを強制します。 sqliteあなたは何でもしたいです。

+1

http://www.oracle.com/technology/products/berkeley-db/sql.html –

関連する問題