DBfDotNetを使用してセンサーデータを保存する方法を検討してきました。 私は何を話しているのか分からない人のために、それはC#で書かれたデータベースエンジンです。codeplexまたはこの非常に良いcodeprojectの記事をチェックしてください。 codeprojectアーティクルのタイミングのために比較されるデータベースはsqliteです。単純なファイルデータベースにはどのような問題がありますか?
私が行ったテストから、私が試した他の組み込みデータベースよりも大幅に高速です。それは基本的にオブジェクトデータベースなので、日付を保存するだけでADO.NET、ORM、SQLなどの恐ろしいことを心配する必要はありません!ファイルで500K行、のようなクエリで
:
IEnumerable<People> result = peoples.Where<People>(x => x.dob < DateTime.Now.AddYears(-30)
&& x.dob > DateTime.Now.AddYears(-10)
&& x.name.StartsWith("Ca")
);
は約5秒かかりました。
このようなデータベースを使用すると、どのような短所がありますか?
1つの問題は、データベースファイルの列が固定幅であるため、データが変更された場合、スペースが無駄になることです。私が保存しようとしているデータは、とにかく固定された幅なので、これは私にとって問題ではありません。
スレッドセーフではありません。これは私にとっては問題ではありませんが、これはオプションのラッパーとしていつでも追加できます。
また、ACIDから遠く、書き込み中にエラーが発生すると、いくつかの問題が発生する可能性があります。
私はサポートが私が持っている主な問題だと思います。ほとんどの問題を修正するのに良い気分になれるように感じ、私はすべてのソースを読みました。しかし、私が書いたものとはまったく違って、私は実際に6ヶ月間ダウンしたいと思っていますし、データベースが開かれていないことを私に伝えるコールを持っています! – Tim