sql - länge - title tag wordpress




Wie indexiere ich eine Datenbankspalte? (6)

1.

 CREATE INDEX name_index ON Employee (Employee_Name)
  1. Auf einer Multispalte

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    

Hoffentlich kann ich Antworten für jeden Datenbankserver erhalten.

Eine Übersicht über die Funktionsweise der Indexierung finden Sie hier: Wie funktioniert die Datenbankindexierung?


Da die meisten Antworten für SQL-Datenbanken gegeben werden, schreibe ich dies für NOSQL-Datenbanken, speziell für MongoDB.

Im Folgenden finden Sie die Syntax zum Erstellen eines Index in der MongoDB mithilfe von Mongo Shell.

db.collection.createIndex( <key and index type specification>, <options> )

Beispiel - db.collection.createIndex( { name: -1 } )

Im obigen Beispiel wird ein einzelner absteigender Index für den Schlüssel im Namensfeld erstellt.

Denken Sie daran, dass MongoDB-Indizes die B-Baum-Datenstruktur verwenden.

Es gibt mehrere Arten von Indizes, die wir in mongodb erstellen können. Weitere Informationen finden Sie unter folgendem Link: https://docs.mongodb.com/manual/indexes/


Ein Index wird nicht immer für alle Datenbanken benötigt. Zum Beispiel: Kognitio aka WX2-Engine bietet keine Syntax für die Indizierung, da die Datenbank-Engine dies implizit erledigt. Die Daten werden über eine Round-Robin-Partitionierung übertragen, und Kognitio WX2 ruft Daten auf einfachste Weise auf und von der Festplatte ab.


Für Python-Pytables haben Indizes keine Namen und sind an einzelne Spalten gebunden:

tables.columns.column_name.createIndex()

Sie sollten nur die Spalten indizieren, auf denen Sie häufige Suchen / Abfragen durchführen.

Angenommen, Sie haben eine Tabelle namens "Students", in der Sie "StudentID", "Name", "Course", "Grade" usw. speichern. Außerdem müssen Sie häufig in der Spalte "StudentID" nach Informationen zu bestimmten Schülern suchen.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Sie sollten einen Index für diese Spalte erstellen, da dies den Suchprozess beschleunigt. Sie können einen Index für eine vorhandene Spalte mit dem folgenden Code erstellen:

CREATE INDEX IndexStudentID

ON Students (StudentID)

Der Name IndexStudentID kann alles sein, wählen Sie etwas, das für Sie sinnvoll ist.

Wenn Sie jedoch einen Index erstellen, erhöht sich der Aufwand für Ihre Datenbank. Es gibt viele Tools, die helfen können, zum Beispiel verwende ich SQLDbm, wie es mir am besten passt.


Sql Server 2005 gibt Ihnen die Möglichkeit, einen abdeckenden Index anzugeben. Dies ist ein Index, der Daten aus anderen Spalten auf der Blattebene enthält. Sie müssen also nicht zur Tabelle zurückkehren, um Spalten abzurufen, die nicht in den Indexschlüsseln enthalten sind.

Erstellt Nonclustered-Index my_idx für my_table (my_col1 asc, my_col2 asc) include (mein_col3);

Dies ist für eine Abfrage von unschätzbarem Wert, in der my_col3 in der Auswahlliste und my_col1 und my_col2 in der where-Klausel enthalten sind.





indexing