2011-12-15 3 views
0

私はユーザープロファイリングおよびWebパーソナライゼーションエンジンとして機能するFirefox拡張を開発しています。それは、ウェブページのTF-IDF関連データを記憶する必要がある。私の質問は、速い簡単な検索結果を生み出すでしょうか?これは、より効率的な時間ですか?ファイルストレージまたはSQLite

a。カスタムデータ構造を使用し、データ構造全体をファイルに格納し、メモリにロードしてクエリを実行しますか?

または

b。 SQLiteデータベースからのデータの格納とクエリ

テーブルの1つに約250,000行の最悪のシナリオを仮定することは安全です。

答えて

4

あなたの質問は基本的に以下のとおりです。

a。データストレージシステムの独自の実装を作成する必要がありますか?

または

b。既製の実績のあるデータストレージシステムを使用する必要がありますか?

あなたが最初のアプローチで行く場合、私はそれを、言う:あなたは明らかにこのコードを書いて過ごす時間を終わるだろう

  • 。既存のライブラリの上に学習/コードを書くのに費やす時間とこれを比較する必要があります
  • 時間の経過とともに必然的に機能を追加し始めます。あなたは、コードを追加するコストと既存のライブラリを使用することを避け、既存のライブラリを使用することを継続的に評価する必要があります。
  • 重大なパフォーマンスやその他の問題が発生する可能性があります。 SQLiteのようなものがすでにこれらの問題を見つけるためにたくさんのプロダクションを使用していたとき、このリスクを抱えていますか?
  • あなたのデータストレージに起因するバグを処理するのにどれだけ時間を費やすつもりですか?オフフックライブラリを使用することは避けられますか?

この別の方法は、なぜSQLiteを使用しないのですか?あなたのシナリオでは何か問題がありますか?私は何も考えることができません。

私は確かにSQLite(または類似のもの)から始める傾向があります。それが何らかの方法で動作しないことが判明した場合、棚の選択肢から他のものを使い切った後で、私自身のデータストレージライブラリを作成することを検討します。

+0

コメントありがとうございます。このようなシンプルなシナリオでデータベースを使用すると、アプリケーションが自分のファイルベースの実装を使用するのと比較してパフォーマンスが低下するオーバーヘッドが導入されるかどうかが問題です。 –

0

ディクショナリまたはバイナリツリーのようなデータ構造を使用できないのはなぜですか?検索、リトリビュールのデータ構造をベースにして、&の削除を挿入します。

+0

答えますか?コメント? –

関連する問題