私はテーブル複数の列のインデックス - 1つの列に対してのみクエリを実行するとOKですか?
create table sv (id integer, data text)
とインデックスがある場合:私は、クエリ
select * from sv where id = 10
をしなかった場合
create index myindex_idx on sv (id,text)
が、これはやはり便利だろうが
尋ねるための私の理由は、私は「ということですインデックスを持たないテーブルのセットを調べ、選択されたクエリのさまざまな組み合わせを見ることができます。 1つの列だけを使用するものもあれば、複数の列を持つものもあります。両方のセットでインデックスを取得する必要があるのですか、それともすべてを含むインデックスですか? フルテーブルスキャンより高速なルックアップのためにインデックスを追加しています。
(マット・ハギンズによって回答に基づいて)例:
select * from table where col1 = 10
select * from table where col1 = 10 and col2=12
select * from table where col1 = 10 and col2=12 and col3 = 16
は、すべてのインデックステーブルでカバーすることができた(co1l1、COL2、COL3)が、
select * from table where col2=12
は別のインデックスが必要でしょうか?
私は<3 StackOverflowです。優れた答えは、予想以上に良い方法です。私が使用した答えを受け入れ、最高の投票回答を受け入れられた回答の下の補足にする – svrist