4

Solrスキーマに値1、2、3、または4のいずれかのフィールドがあるとします。このフィールドに対して算術演算は行いません。フィールドはレコードのステータスです。A、B、C、またはDの場合も同様に簡単です。11,000,000レコードのそれぞれに、これらのステータスの1つがあります。

この質問では、intは「メモリ効率が高い」と答えているので、それが始まりです。考慮すべき他の要因はありますか?一方が他方よりも速く一致しますか?

このフィールドはソートされません。値は任意であり、ソートは行いません。フィルタクエリでのみ使用されます。

4

2 に答える 2

6

範囲についてクエリを実行することはありますか?それで、あなたの1 ... 4が本当に悪いから素晴らしいというステータスをマークしているなら、1-2からのレコードでクエリを実行することはありますか?これは、それらをintにする必要がある唯一のことです(そして、4つしかないので、それほど大したことではありません)。

データストレージの私のルールは、intがintとして使用されない場合は、文字列として保存することです。より多くのスペースなどが必要になる場合がありますが、より多くの文字列操作などを行うことができます。また、11mレコードのメモリ要件は、その1つのフィールドが文字列であるかintであるかは関係ありません(11mは大量のレコードですが、大きな負荷ではありません) Solr / Luceneの場合)。

于 2013-01-14T17:51:26.710 に答える
3

4つの異なる値しかない場合、intとStringは、フィルタークエリ、並べ替え、さらには範囲クエリに対しても非常によく似たパフォーマンスを発揮します。

于 2013-01-15T14:55:15.720 に答える