できるだけ早く実行する必要がある sqlite クエリがあります。クエリはかなり単純ですが、最大のパフォーマンスを得るためにテーブルにインデックスを付ける最良の方法がわかりません。
テーブルは「レキシコン」と呼ばれます。定義は次のとおりです。
_id integer primary key
word text
frequency integer
lset integer
rset integer
クエリは次のとおりです。
SELECT word,frequency FROM lexicon WHERE lset>? AND rset<? ORDER BY frequency DESC LIMIT ?
すべての個々の列にインデックスを付けましたが、複合インデックスの方が優れているのではないかと思いますが、どの組み合わせでしょうか? また、lset と rset のインデックスは昇順または降順である必要がありますか?
編集: lset と rset は、ツリー構造を表すネストされたセット値です。したがって、lset と rset のすべての値は相互に一意であり、完全に分散されています。また、任意の行で lset < rset.
前もって感謝します...