4

このスレッドの拡張- MySQL データベースではなく、ファイル システムからファイルを取得する方が速い理由を知りたいです。10 分間でどちらが最も多くのデータ (複数の種類のデータ) を取得するかを確認するために 2 つのベンチマークを行った場合、どちらが勝つでしょうか?

ファイル システムが本当に高速である場合、すべてをファイル システムに保存し、データベースを csv または xml に置き換えてみませんか?

編集1:

Java の代替ストレージ オプションに関する適切なリソースを見つけました

編集2:

データ ストレージに XML を使用する (できれば) SQL データベース サーバー エンジン (または少なくともその一部) の機能を備えた Java API/Jar を探しています。何か知っていることがあれば、下にコメントを残してください。

4

4 に答える 4

14

結局のところ、データベースデータをファイル システムに格納するだけです。データベースを使用することを決定するのは、生データだけでなく、すべての有用なものです。

CSVを使用してデータベースシステムの機能、スケーラビリティ、堅牢性、整合性などを複製し、リレーショナルデータベースより高速に実行できる場合は、そうすることをお勧めします。

そこにたどり着くのに数年かかるけど。

もちろん、データを格納する方法はリレーショナル システムだけではありません。オブジェクト指向のデータベース システム ( db4oInterSystems Cache ) とドキュメント ベースのシステム ( RavenDB ) があります。

パフォーマンスは、作業しているデータのスタイルと量、およびそれを使用して何をしようとしているのかにも関連しています。それについては議論するつもりはありません。

また、次の議論も開始しません。メモリがファイル システムよりも本当に速いのであれば、なぜすべてをメモリに格納しないのでしょうか? :-)

これは、私がずっと前に回答した別の質問にも似ているようです。

C# は C++ よりも本当に遅いですか?

基本的に、パフォーマンスのためだけに物事が行われるわけではありません。

于 2012-05-30T12:54:01.063 に答える
3

MySQL は、コンピューター上の他のすべてのものと同じようにファイル システムを使用します。単一のデータまたはデータのテーブルを取得するには、ファイル システムから直接取得するより高速な方法はありません。MySQL は、そのファイル システムのプルにわずかなオーバーヘッドが追加されるだけです。

インテリジェントな選択、一部の行の照合、またはそのデータのフィルタリングが必要な場合、MySQL は他のほとんどのオプションよりも高速にそれを実行します。データベース サーバーは、ファイル システムにはない計算能力とデータ操作能力を提供します。

于 2012-05-30T12:54:18.537 に答える
1

混合/構造化データがある場合、DBMSが唯一のソリューションです。たとえば。すべての顧客の名前、名前、国をDBに保存するようにしてください。ただし、1981年に生まれ、ローマに住んでいる顧客のみを対象としています。このデータをファイルシステム上のファイルに保存している場合、すべてのファイルをスキャンせずに必要なデータのみを簡単に取得するにはどうすればよいですか。また、返されたデータをどのように結合しますか。

DBMSは、それ以上のものを提供します。多くのDBMSはデータをファイルに保存します。

この抽象化レイヤーを使用すると、非常に簡単で標準的な構造化された方法でデータを取得できます。

于 2012-05-30T13:05:21.907 に答える
0

違いは、目的のデータがどのように配置されるかです。

ファイル システムでは、目的のデータを見つけるということは、それが見つかるまで既存のすべてのデータを検索することを意味します。

データベースは、データの量に関係なく、必要なデータをほぼ即座に (~12 回の比較内で) 検索する結果となる索引付けを提供します。

私たちが必要としているのはインデックス付きファイル システムです。それらはデータベースと呼ばれます。

于 2018-07-26T16:25:42.357 に答える