4

SQLiteDISQLiteの違いは何ですか?また、どちらか一方を選択する必要があるのはなぜですか?

私のコンテキストは、大規模なデータベース (最大 10 GB になる可能性があります) を扱っているということです。その重要な部分は、単一のインデックス付きフィールドと最大数 KB のテキスト フィールドを持つ 1 つの非常に単純なテーブルにあります。私の開発ツールは Delphi 2009 で、データベースは私の .exe に組み込まれます。

私の主な基準はスピードです。これは、たとえば Windows 7 と 4 GB の RAM を搭載した一般的な Windows コンピューターで実行されるソフトウェア アプリケーションの場合です。

別のデータベース ツールを提案したい場合は、特に速度の最前線で、私のアプリケーションにとってこれら 2 つよりも優れている理由を教えてください。

4

5 に答える 5

4

AFAIR、DISQLiteはSqliteのobjファイルを使用し、それらをDelphiでコンパイルし、元のものよりも多くの機能を生成し、同じsqlite DB形式を使用するため、Sqliteをサポートする他の言語でDISQLiteデータベースファイルを読み取ることができます運転手。

また、DISQLite のもう 1 つの機能は、Sqlite DLL を配布する必要がないことです。

DISQLite は最大 2TB のデータベース サイズをサポートしているため、問題なく要件を処理できます。

私が検討するもう 1 つのオプションは、FireBird 組み込みバージョンです。さらに拡張したい場合は、それほど労力をかけずに完全な FireBird サーバーに変更できます。

しかし、Sqlite と DISQLite の両方が Firebird よりも優れたパフォーマンスを発揮すると思います。

Audcom Sqlite コンポーネントを使用して Sqlite データベースにアクセスします。Sqlite objs ファイルを使用してコンパイルできるため、sqlite dll を展開する必要はありません。

于 2010-01-11T08:43:45.773 に答える
2

独自の実装を作成することをお勧めします。複雑なSQLクエリが必要ない場合、最も単純な(そしておそらく最速の)実装はファイルベースのストレージです。

于 2010-01-11T08:40:46.260 に答える
1

DISQLLite には 2 つのバージョンがあり、無料のバージョンは個人的および非商用の使用に限定されています。したがって、SQLite は無料/有料バージョンのない無料のオープンソース実装であるため、これが決定要因の 1 つになる可能性があります。

どちらのデータベースも、GB 単位の範囲のデータを処理できます。SQLite はコンパイル済みのバイナリ、つまりアプリケーションに沿って配布できる DLL で利用できます。ただし、利用可能なソース コードを使用して、アプリケーション内でコンパイルし、DLL を必要とせずに使用することもできます。

DLL モジュールを (場合によっては) 使用する利点は、いくつかのバグが解決されたときに、アプリケーション全体を再コンパイルするのではなく、クライアント マシンで DLL を置き換えるだけで済むことです。

私は SQLite があなたの要件に適した選択肢になると思います。データベースの速度は、データベースのタイプに完全に基づいているわけではありません。ハードディスクのアクセス速度、利用可能な処理能力、RAM などのハードウェアも、データベースの高速化に重要な役割を果たします。

于 2010-01-11T09:04:06.437 に答える
1

SynBigTable ユニットをご覧ください。SQLite よりもはるかに高速で、目的にぴったり合っているようです。

また、ネイティブの SQLite 実装が必要な場合は、SQLite3 フレームワークをご覧ください。これは無料でオープンソースであり、外部 dll は必要ありません。また、クローズド DiSQLite よりも多くの機能があります (SQL 関数や仮想テーブルを実装するための Delphi ネイティブ クラスなど)。

パフォーマンス POV の場合、ボトルネックは使用しているラッパーではなく、ディスク アクセスと、データベースのセットアップ方法です。できるだけ早くデータを取得するためにインデックスを使用することを忘れないでください。そうすれば、使用しているラッパーが何であれ、SQLite では 10 GB のデータでも問題になりません。

于 2011-07-15T16:36:12.233 に答える