0

Q: このシナリオではどちらが速いですか?

私のシナリオ: 私のアプリケーションは、配列または postgresql db のいずれかにリンクのリストを格納するため、次のようになります。

1) mysite.com
   a)    /users/login
   b)    /users/registration/
   c)    /contact/
   d)    /locate/search
   e)    /priv/admin-login

上記のエントリの下1)-stringこれらの URL を検索して、たとえば以下を含むパスを見つけます。

'login'

例えば。

上記の a) から e) の文字は、特定のドメインに対してさらに 5 ~ 100 個のエントリを持つ可能性があります。

*使用法: *このデータ構造は、毎日のように変更される可能性がありますが、1 日に 1 回だけです。一部のキー/値は削除され、その他は変更されます。次のような個別のセット:

dict2 = { 'thesite.com': 123, 98.6: 37 };

それぞれkeyが 1 つのドメインのみを表します。

私はこれについて少し検索してみましたが、本当の良い答えを見つけることができないようです:いつarray使用する必要があり、いつデータベースのようなpostgresqlものを使用する必要がありますか?

私はいつもデータベースを使用してデータを処理してきました (postgresql ではなく mysql を使用) が、これからはもっとうまくやろうとしているので、配列や他のデータ構造がループ内でうまく機能するかどうか疑問に思いました。ループ中に特定の文字列を照合しようとしている間。

いつもありがとうございます!

4

2 に答える 2

0
  1. 試して。データセット、ハードウェア、利用可能なディスクとネットワーク IO、使用パターンです。ここに唯一の正解はありません。計画しているクエリの数もわかりません。1 分あたり 1 つですか、それとも 1 秒あたり数千ですか?
  2. データがメモリにうまく収まり、最初の読み込みにそれほど時間がかからない場合は、メモリ内のディクショナリに貼り付けた方がおそらく高速です。
  3. 常に完全な単語を探している場合 (このlogin場合のように)、URL を部分に分割し、それらを個別にインデックス化することで速度も向上します。
于 2013-07-04T14:22:57.757 に答える