私はデータベースを作成しており、最初にプロトタイピングとベンチマークを行っています。私は、オープンソースで商用無料の組み込み可能なリレーショナル Java データベースである H2 を使用しています。現在、どの列にもインデックスを作成していません。
データベースが約 5GB に拡大した後、バッチ書き込み速度は 2 倍になりました (書き込み速度は元の速度の 2 倍に低下しました)。私は新鮮でクリーンなデータベースでミリ秒あたり約 25 行を書き込んでいましたが、現在は 7GB で約 7 行/ミリ秒を書き込んでいます。私の行は、short、int、float、および byte[5] で構成されています。
データベースの内部構造や、H2 がどのようにプログラムされているかについても、私はあまり知りません。また、これは私がテストした他の DBMS の問題であるため、H2 を悪口を言っているわけではありません。
インデックス作成のオーバーヘッドがない場合、このようにデータベースの速度を低下させる要因は何ですか? 主にファイルシステム構造と関係がありますか? 私の結果から、Windows XP と ntfs がファイルを処理する方法により、ファイルが大きくなるにつれてファイルの末尾にデータを追加するのが遅くなると思います。