SQLite Show Indexes

SQLite Show Indexes
„Ein Index ist eine Art von Datenstruktur, die die Werte einer Spalte (oder Spalten) für die Suche integriert und optimiert. Indizes (oder Indizes) sind einzigartig für Datenbank -Lookups, da sie es ermöglichen, bestimmte Zeilen in einer Tabelle zu finden, ohne die gesamte Tabelle zu scannen. Infolgedessen können Indizes die Leistung einiger Abfragen erheblich verbessern. Indizes sind immer mit einer einzelnen Tabelle verbunden; Sie können jedoch viele Spalten aus der Tabelle umfassen.Normalerweise erlauben Indizes doppelte Werte. Das eindeutige Schlüsselwort verhindert jedoch, dass doppelte Werte eingefügt oder in eine Tabelle mit einem nicht eindeutigen Wert aufgenommen werden. Da Null nicht als Wert angesehen wird, wird ein eindeutiger Index nicht verhindern, dass ein oder mehrere Nulls erscheinen. Sie müssen in der Definition der Anfangstabelle nicht null angeben, um Nulls zu verhindern.

Wenn Sie einen Index fallen lassen, wird er aus der Datenbank entfernt, aber die Tabelle ist nicht beeinflusst.

Mit einem Beispiel erfahren wir, welche Indizes in SQLite enthalten sind, wie Indizes für einzelne oder viele Spalten in SQLite festgelegt werden und wie Sie SQLite -Indizes entfernen oder fallen lassen. Dann werden wir diskutieren, wie man sie in SQLite zeigt.”

Syntax der SQLite -Indizes

Erstellen [einzigartig] index [falls nicht existiert] index_name auf Tabelle_Name (Spalten… n);

Die Erstellung indexer Index wird in der obigen Syntax verwendet, um einen neuen Index zu erstellen. Der bereitgestellte Indexname bezieht sich auf einen bestimmten Indexnamen, den wir generieren müssen. Die Schlüsselwörter und der Index sind Schlüsselwörter, und die angegebene Tabelle bezieht sich auf eine vorhandene Tabelle mit einem Spaltennamen.

Wenn wir mehr als ein Feld haben und dass Daten eindeutig definiert werden müssen, damit wir das eindeutige Schlüsselwort verwenden können, können wir das eindeutige Schlüsselwort verwenden. Eine eindeutige Klausel ist eine optionale Komponente dieser Syntax.

Schlüsselpunkte des SQLite -Index

  • Die Verwendung eines Index beschleunigt Suchvorgänge und wo Klauseln; Es verlangsamt sich jedoch die Dateneingaben in Aktualisierung und Einfügen von Vorgängen. Es gibt keinen Einfluss auf die Daten, wenn Indizes erstellt oder beseitigt werden.
  • Ein Index wird mit der Anweisung Create Index erstellt. Sie können den Index benennen, die Tabelle und welchen Index der Spalten oder Spalten angeben und festlegen, ob sich der Index in aufsteigender oder absteigender Reihenfolge befinden sollte.
  • Die Indizes sind auch eindeutig, auf die gleiche Weise, wie die eindeutige Einschränkung doppelte Datensätze in der Spalte oder Sammlung von Spalten verbietet, auf denen der Index erstellt wird.

Wie funktionieren Indizes in SQLite?

Eine bestimmte Tabelle muss mit jedem Index verbunden sein. Ein Index kann ein oder sogar mehr Felder enthalten, aber sie müssen alle in derselben Tabelle sein. In einer Tabelle können mehrere Indizes gefunden werden.

SQLite bietet eine B-Tree-Struktur zum Speichern von Indexdaten, wenn Sie einen Index hinzufügen. Die Indizes in SQLite werden unter Verwendung der B-Tree-Methode organisiert. Der B-Tree ist eher ein ausgewogener Baum als ein binärer Baum, da das B für Balanced steht.

Der Index umfasst Werte aus den Spalten, die wir im Index definiert haben, sowie den Wert row_id für jede dieser Spalten. SQLite kann die Zeile nun mit den Einträgen der indizierten Felder schnell lokalisieren.

Stellen Sie sich einen Datenbankindex vor, der einem Buchindex ähnelt,. Wir können schnell mehrere Seiten basierend auf Schlüsselwörtern suchen, indem wir den Index durchsuchen.

Wann sollten Indizes nicht verwendet werden?

Obwohl Indizes die Datenbankeffizienz verbessern sollen, gibt es Situationen, in denen sie nicht berücksichtigt werden sollten. Wann sollte ein Index verwendet werden? Die folgenden Faktoren können Sie bei der Entscheidung unterstützen.

Es wird nicht empfohlen, Indizes in:

  • Tische mit einem kleinen Fußabdruck
  • Tabellen, die häufig in riesigen Chargen aktualisiert oder eingefügt werden.
  • Null-hohe Säulen.
  • Häufige modifizierte Spalten.

Beispiel 1

Zunächst müssen wir die Tabelle erstellen, um ihre Indizes zu sehen. Wir haben unten eine Tabelle gezeigt, die wir mit dem Befehl create in SQLite erstellt haben und auch definierte Felder dieser Tabelle.

Erstellen table story_books (
book_id int primärschlüssel ,
book_name char (10) ,
book_price fLAT
);

Jetzt haben wir einen Index einer einzelnen Spalte erstellt. Ein einspaltiger Index basiert auf einer einzelnen Datenbankspalte. Wir können mehrere Spalten gleichzeitig übergeben, um Indizes einer bestimmten Tabelle zu erstellen. Wir haben in der folgenden Abfrage einen einzelnen Feldnamen Book_name aus den Table Story_Books gegeben.

# Index idx_story_books_book erstellen auf story_books (book_name);

Durch Verwendung der .Index -Methode, der in der Tabelle erstellte Index ist wie folgt angezeigt:

Eindeutige Indizes werden sowohl für die Datenintegrität als auch für die Leistung verwendet. Ein eindeutiger Index verhindert, dass doppelte Werte in die Tabelle eingegeben werden. Mit der folgenden Abfrage haben wir einen eindeutigen Index in der Book_ID -Spalte der Story_Book -Tabelle erstellt.

Erstellen Sie eindeutige Index idx_book_id
Auf story_books (book_id);

Die Ausgabe zeigt, dass der Index erfolgreich erstellt wurde.

Wir haben einen selektiven Index in einer Tabelle Story_Book erstellt, indem wir nur einen Teil der Datensätze in den Index aufnehmen. Da wir eine Where -Klausel verwendet haben, erhalten nur die Datensätze, in denen das Book_price nicht null ist. Aufzeichnungen mit einem Nullwert für book_name sind nicht Teil des Index.

Erstellen index idx_book_price
Auf story_books (book_price)
Wo book_price nicht null ist;

Beim Ausführen der .Befehl indizier, er wird die Indizes in der Tabelle angezeigt. Wie Sie sehen können, ist dieser Book_price Index enthalten.

Beispiel 2

Der Drop -Befehl von SQLite wird verwendet, um einen Index zu entfernen. Das Ablegen eines Index sollte mit Vorsicht erfolgen, da die Funktionalität beeinträchtigt wird. Hier haben wir mit dem Drop -Befehl eine IF -Existenzklausel. Wenn der gewählte Index nicht vorhanden ist, wird keine Ausnahme generiert. Es ist nicht obligatorisch, die IF -Klausel zu verwenden. Wir können dies überspringen und einfach den Tisch fallen lassen. Wir haben den Index book_name aus dem table story_book durch die folgende Abfrage fallen gelassen.

Drop -Index, wenn existiert idx_story_books_book_name;

Der Index mit dem Spalten book_name wird wie in der Shell gezeigt fallen gelassen.

Beispiel 3

Wir haben die Tabelle SQLite_Master verwendet, anstatt die zu verwenden .Indexes Befehl. Obwohl diese Tabelle mehr als nur Indizes enthält, können Sie die WO -Klausel verwenden, um sie nur auf Indizes zu beschränken.

WÄHLEN
Name, tbl_name
…> Von SQLite_Master
…> Wobei type = 'index';

Wir haben die Tabelle, der jeder Index entspricht. Die Spalte TBL_Name verfolgt dies wie folgt.

Abschluss

In diesem Abschnitt haben wir die Grundlagen der Einrichtung eines Index in SQLite durchgesehen und diskutiert, wie diese Indizes in SQLite mit einigen Beispielen zeigen können. Diese Beispiele sind einfach zu bedienen und auch die Möglichkeiten, die die Indizes im SQLite anzeigen. Wenn Sie den gesamten Artikel lesen, sind Sie möglicherweise extrem klar.