大規模な単純なデータベースについて SQLite と DISQLite を比較するとどうなるでしょうか?

StackOverflow https://stackoverflow.com/questions/2040266

質問

違いは何ですか SQLite そして DISQLite なぜ一方を他方よりも選択する必要があるのでしょうか?

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

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

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

役に立ちましたか?

解決

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 をデプロイする必要はありません。

他のヒント

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

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

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

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

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

DISQLLite 個人版にはいくつかの制限があることに注意してください。また、誰でも SQLite ラッパーを無料で実装できるのに、プロフェッショナル版の価格 (ソースなしで 149.99 ユーロ) に見合う価値があるとは思えません。

フリーウェア製品として DISQLite Personal を使用していたため、新しいバージョンのリリースでデータベースの変更を実装する必要がありました。個人版は「ALTER」をサポートしていないため、製品版を購入する必要がありました。そこで私は DISQLite を捨てて、優れた SQLite ラッパーを使用しました。フルバージョンの料金を支払う用意がある場合にのみ、DISQLite を選択してください。

SQLite4Delphi より良い選択肢である可能性があります。あるいは、少なくともより費用対効果の高いソリューションを示してください。

私たちのものを見てください SynBigTable ユニット. 。それはそうなるだろう SQLiteよりもはるかに高速です, 、まさにあなたの目的に適合しているようです。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top