ActiveAndroidで複合インデックスを構築させる方法
通常のindexは以下の通りindex = true
って書いておけば簡単に作れる。
宣言(カラム部分のみ)
@Column(name = "score", index = true)
public int score;
生成されるクエリ(一部)
CREATE INDEX index_XXX_score on XXX(score);
これを複合indexにする場合、組み合わせたいカラム同士で同じ名前をindexGroupsに追加することで複合indexが構築される。
宣言(カラム部分のみ)
@Column(name = "category_id", indexGroups = {"category_score"})
public int categoryId;
@Column(name = "score", indexGroups = {"category_score"})
public int score;
生成されるクエリ(一部)
CREATE INDEX index_XXX_category_score on XXX(category_id, score);
Groups、という名前からお察しの通り、あるカラムを複数のindexに絡めることも可能。例えば、A-BとB-Cの二つの複合indexを使うとか。
例えばこうやってcategoryとscoreで複合indexを設定しておけば、きっと「category = 1をscoreで昇順」みたいなリクエストが爆速になってくれるはず。id取得ばかりがクエリじゃない。ORMはSQLを理解してこそ真の力を発揮できるはず。
Author And Source
この問題について(ActiveAndroidで複合インデックスを構築させる方法), 我々は、より多くの情報をここで見つけました https://qiita.com/YukiAsu/items/340d7485a4d1666390d6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .