2

後で処理するために保存する必要がある 1Mb/s の数値データをストリーミングする実験があります。データベースに直接書き込むのは、CSV ファイルに書き込むのと同じくらい簡単に思えます。そうすれば、サブセットや範囲を簡単に取得できます。

私は sqlite2 の経験があり (テキスト フィールドしかない場合)、生のディスク アクセスと同じくらい高速に思えました。このアプリケーションに最適な現在進行中の DBMS について何か意見はありますか?

申し訳ありませんが、Windows では最初は C++ であると追加する必要がありましたが、クロス プラットフォームは優れています。理想的には、DB バイナリ ファイル形式はクロス プラットフォームである必要があります。

4

5 に答える 5

3

データベースでチェックや操作を行わずにデータの読み取り/書き込みのみを行う必要がある場合は、両方で問題なく実行できます。システムが同じエンディアネスを持っている限り、Firebirdのデータベースファイルをコピーできます(つまり、IntelプロセッサとPPCプロセッサを搭載したシステム間でファイルをコピーすることはできませんが、Intel-Intelは問題ありません)。

ただし、単純な読み取り/書き込み以外のデータを処理する必要がある場合は、Firebirdを使用してください。Firebirdは、トリガー、ビュー、ストアドプロシージャ、一時テーブルなどのすべての「エンタープライズ」機能を備えた完全なSQLサーバーです。等

ところで、Firebirdを試してみることにした場合は、IBPPライブラリを使用してアクセスすることを強くお勧めします。これは、FirebirdのCAPIの非常に薄いC++ラッパーです。私はすべてをカプセル化する約10のクラスを持っており、それは非常に使いやすいです。

于 2008-09-18T22:49:15.283 に答える
2

数値を保存し、クエリの範囲を簡単に設定できるようにするだけの場合は、STLで使用可能な標準のツリーデータ構造を取得して、ディスクにシリアル化するだけです。これは、特にクロスアーキテクチャを実行しようとしている場合に、クロスプラットフォーム環境であなたを噛む可能性があります。

より柔軟で人に優しいソリューションに関しては、sqlite3は広く使用されており、堅実で安定しており、あらゆる場所で非常に優れています。

BerkeleyDBには、それを使用するための優れた機能がいくつかありますが、このシナリオではどれも当てはまりません。

ライセンス契約に同意できるのであれば、sqlite3を使用すると思います。

-D

于 2008-09-18T18:59:18.753 に答える
0

使用している言語によって異なります。それが C/C++、TCL、または PHP である場合、シングル ライターのシナリオでは SQLite が依然として最高です。SQL アクセスが必要ない場合は、Sleepycat や gdbm などの berkeley DB スタイルのライブラリの方が少し速いかもしれません。複数のライターを使用すると、個別のクライアント/サーバー ソリューションを検討できますが、必要ないように思えます。Java を使用している場合は、hdqldb または derby (「JavaDB」ブランドで Sun の JVM に同梱されている) が最適なソリューションのようです。

于 2008-09-18T18:14:57.063 に答える
0

どちらのデータベースも、これほど高速にデータを書き込むことはできないと思います。これは自分で確認できます。私の経験では、単一の整数主キーを持つ非常に単純なテーブルに対して、SQLite は 1 秒あたり 1000 行を超える INSERT に失敗しました。

パフォーマンスの問題が発生した場合は、CSV 形式を使用してファイルを書き込み、後でそのデータをデータベース (SQLite または Firebird) にロードしてさらに処理します。

于 2009-07-29T13:02:18.460 に答える
0

このような大規模なデータ セットの格納に特化した数値データ ファイル形式を検討することもできます。例えば:

  • HDF -- 最も一般的で、多くの言語でサポートされており、無料のライブラリがあります。これを強くお勧めします。
  • CDF -- NASA が使用する同様の形式 (ただし、誰でも使用可能)。
  • NetCDF -- もう 1 つの同様の形式 (最新バージョンは、実際には必要最小限の HDF5 です)。

このリンクには、上記のデータ セット タイプの違いに関する情報が含まれています: http://nssdc.gsfc.nasa.gov/cdf/html/FAQ.html

于 2011-06-08T18:14:18.350 に答える