2016-03-10 22 views
10

(日付でソートされたレコードを表示)CoreDataインスタンスを支持しました。私は、そのインデックスがクエリ時間を増やすことができます知っているが、違いは何だ:ここに見られるように、その後、インデックスフィールドに属性のカンマ区切りリストを追加し、属性が属するエンティティを強調CoreData。インデックスとインデックスの違いは何ですか?私は私のSQLへのクエリをスピードアップしているよ

は:

enter image description here

またはここに見られるように、次いで、インデックス付きのボックスをチェックし、属性を強調:

enter image description here

+1

あなたはここからアイデアを得ることができます[コードから複合インデックスを設定しhttp://stackoverflow.com/questions/8562711/what-are-indexes-in-the-xcode-core-data-data-model-inspector] –

答えて

8

は単一ATTRIBを持つ行を追加IndexesリストにUTEは、その属性のIndexedを選択することと等価である:それは、クエリ文で検索をスピードアップするために属性のインデックスを作成します。

Indexesリストは、化合物索引を意味します。

SELECT * FROM customer WHERE surname = "Doe" AND firstname = "Joe"; 

この文は、複合インデックスsurname, firstnameを利用することができます:あなたは、クエリのWHERE句で結合これらの属性の値を検索されることを知ったときに複合インデックスが便利です。あなただけsurnameを検索した場合、しかし、あなただけfirstnameを検索していない場合は、そのインデックスにも有用であろう。索引を電話帳のように考える:最初に姓でソートし、次に名前でソートします。したがって、属性の順序は重要です。あなたが最初のシングルインデックスのために行く必要がありますあなたの場合は

(つまり、あなたが検索したい属性のIndexedを選択します)。たとえば、babyIdを検索しただけでは、表示された複合インデックスは使用できませんでした。

+0

、(重複)も参照の答えはhttp: //stackoverflow.com/a/8657785/3419541 – PDK

+0

こんにちは、私は最新バージョンのXcodeでインデックスプロパティを見つけることができないとき、私は、テーブルのインデックスを追加するにはどうすればよいです。 – taitanxiami

+1

@taitanxiamiそれは良い質問です。ちょうど答えを見つけました:Xcode 9はエディタメニューに "Add Fetch Index"コマンドを持っています。エンティティを選択すると有効になります。そのインデックスに複数の属性を追加することで複合インデックスを定義できます。 – Dirk

関連する問題