このように、テーブルのインデックスを特定の行セットのみに作成するという面白い要求があります。mysqlの特定の行にのみインデックスを作成する
これは私のテーブルには、次のようになります。
USER:ユーザーID、作成、friendid、blah0、blah1、...、blahN
今、私はANを作成したいのですが上のインデックス:
(ユーザーIDは、作成された、friendid)
ただし、userid = friendidの行でのみ使用できます。このインデックスは、WHERE句に "userid = friendid"が含まれるクエリを満たすためにのみ使用されるためです。これが当てはまらない行がたくさんあります。インデックス上の余分なスペースをすべて無駄にしたくありません。
もう1つのオプションは、このテーブルの挿入/更新時に作成されたテーブル(クエリテーブル)を作成し、それを行うためのトリガーを作成することですが、再びそのテーブルのインデックスを推測しています2回保管してください。
mysqlは主キーをどのように保存しますか?つまり、プライマリキーで注文されたテーブルか、挿入注文で注文され、PKは通常のユニークインデックスのようですか?
クラスタ化されたインデックス(http://dev.mysql.com/doc/refman/5.0/en/innodb-index-types.html)をチェックしましたが、InnoDBだけがサポートしているようです。 MyISAMを使用しています(これは、クエリテーブルの3つのフィールドにクラスタ化インデックスを作成できたためです)。
私は基本的にこのような何かを探しています:
のALTER TABLEユーザーは条件付きインデックスについては、ユーザーID =
明らかに、私の要件はあまり面白くありません。 db.cs.berkeley.edu/papers/ERL-M89-17.pdf – dhruvbird