2016-06-04 7 views
2

Ich bemerkte, dass Realm indizierte Eigenschaften unterstützt. Aber nicht alle Datenbanksysteme unterstützen dies (oder es erfolgt standardmäßig ohne explizite Deklaration).Indizierte Eigenschaften in Realm

Bitte erläutern Sie, warum es benötigt wird und was nicht mit der Verwendung von Primärschlüsseln vergleichbar ist. Und dann, und ein anderer ermöglicht es, Abfragen zu beschleunigen. Aber warum nicht einfach nur Primärschlüssel verwenden?

Es ist klar, dass es möglich ist, mehrere Eigenschaften zu indizieren, aber warum? Das heißt, ich stelle keine wirklichen Probleme dar, bei denen keine Verwendung von Indizierung nicht möglich ist (oder vielleicht, aber es wäre in Bezug auf die Programmierung eklig). Geben Sie ein paar Beispiele für Aufgaben an, die einfach die Vorteile der Indexierung erklären: wie es ohne Indexierung und mit Indexierung geschieht. Zu dem Ergebnis war offensichtlich, "auf dem Gesicht".

Ich benutze Swift.

Sorry für mein Englisch 9 (◕‿◕) 6

Antwort

1

Die meisten anderen Datenbanksysteme benötigen eine ausdrückliche Erklärung, die gleiche wie Realm, glaube ich.

(zB MySQL CREATE TABLE test(id int, no int, INDEX(id,no)); oder CREATE INDEX id_index ON test(id); ALTER TABLE test ADD INDEX id_index(id);, SQLite CREATE INDEX nameindex ON user(name);)

Da Indizes ein Kompromiss zwischen Raum und Zeit ist, sind Sie auf jeden INSERT, UPDATE etwas mehr Speicherplatz und ein wenig CPU-Overhead zu opfern, und DELETE Abfrage, um die meisten (wenn nicht alle) Abfragen viel schneller zu machen.

In den meisten Datenbanksystemen benötigt das Erstellen von Indizes eine explizite Deklaration. Die Auswahl der Spalten, in denen Indizes erstellt werden, liegt in der Verantwortung des Programmierers.

Realm ist auch das gleiche. Durch das Indizieren einer Eigenschaft werden Abfragen, bei denen die Eigenschaft auf Gleichheit überprüft wird (d. H. Die Operatoren = und IN), auf Kosten von langsameren Einfügungen stark beschleunigt.

https://realm.io/docs/swift/latest/#indexed-properties

In den meisten der mobilen Anwendung, da sucht mehr als Updates durchgeführt werden, Indizes funktionieren gut in den meisten Fällen.