2016-03-10 20 views
10

Ich bin auf der Suche nach Abfragen zu meiner SQL-CoreData-Instanz (Anzeige von Datensätzen nach Datum sortiert) zu beschleunigen. Ich weiß, dass die Indizierung helfen kann Abfragezeit zu erhöhen, aber was ist der Unterschied zwischen:CoreDaten. Was ist der Unterschied zwischen Indizes und indiziert?

die Entität Hervorhebungen, die ein Attribut gehört, dann eine durch Kommata getrennte Liste von Attributen in das Indizes Feld hinzufügen, wie hier zu sehen:

enter image description here

Oder markieren Sie das Attribut, dann die indizierte Kästchens wie hier zu sehen:

enter image description here

+1

Sie können Idee von hier [ http://stackoverflow.com/questions/8562711/what-are-indexes-in-the-xcode-core-data-data-model-inspector] –

Antwort

8

eine Zeile mit einem einzigen attrib Hinzufügen Die Liste Indexes entspricht der Auswahl von Indexed für dieses Attribut: Es erstellt einen Index für das Attribut, um die Suche in Abfrageanweisungen zu beschleunigen.

Die Indexes Liste ist für zusammengesetzte Indizes gemeint. Compound-Indizes sind nützlich, wenn Sie wissen, dass Sie in der WHERE-Klausel einer Abfrage kombiniert für Werte dieser Attribute gesucht werden:

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

Diese Aussage Verwendung einer Verbindung Index surname, firstname machen könnte. Dieser Index wäre auch nützlich, wenn Sie nur nach surname suchen, aber nicht, wenn Sie nur nach firstname suchen. Stellen Sie sich den Index wie ein Telefonbuch vor: Er wird zuerst nach Nachnamen und dann nach Vornamen sortiert. Daher ist die Reihenfolge der Attribute wichtig.

In Ihrem Fall sollten Sie zuerst die einzelnen Indizes wählen (wählen Sie also Indexed für die Attribute, nach denen Sie suchen möchten). Der zusammengesetzte Index, den Sie angezeigt haben, könnte niemals verwendet werden, wenn Sie beispielsweise nur nach babyId suchen.

+0

Zum Festlegen von zusammengesetzten Indizes aus Code, siehe auch (überlappende) Antwort http: //stackoverflow.com/a/8657785/3419541 – PDK

+0

Hallo, Wie kann ich Index für Tabelle hinzufügen, wenn ich die Indexeigenschaft in der neuesten Version Xcode nicht finden kann. – taitanxiami

+1

@taitanxiami Das ist eine gute Frage. Nur die Antwort gefunden: Xcode 9 hat jetzt einen Befehl "Add Fetch Index" im Editor-Menü. Es wird aktiviert, wenn Sie eine Entität auswählen. Sie können zusammengesetzte Indizes definieren, indem Sie diesem Index mehrere Attribute hinzufügen. – Dirk

Verwandte Themen