Frage

Hoffentlich kann ich Antworten für jeden Datenbankserver bekommen.

Eine Übersicht über die Funktionsweise der Indizierung finden Sie hier: Wie funktioniert die Datenbankindizierung?

War es hilfreich?

Lösung

Das Folgende ist SQL92-Standard und sollte daher von den meisten RDMBS unterstützt werden, die SQL verwenden:

CREATE INDEX [index name] ON [table name] ( [column name] )

Andere Tipps

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

create nonclustered index my_idx on my_table (my_col1 asc, my_col2 asc) include (my_col3);

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

Bei Python-Pytables haben Indizes keine Namen und sind an einzelne Spalten gebunden:

tables.columns.column_name.createIndex()

In SQL Server können Sie Folgendes tun:(MSDN-Link zur vollständigen Liste der Optionen.)

CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name 
    ON <object> ( column [ ASC | DESC ] [ ,...n ] ) 
    [ INCLUDE ( column_name [ ,...n ] ) ]
    [ WHERE <filter_predicate> ]

(Einige erweiterte Optionen werden ignoriert ...)

Der Name jedes Index muss datenbankweit eindeutig sein.

Alle Indizes können mehrere Spalten haben und jede Spalte kann in der von Ihnen gewünschten Reihenfolge angeordnet werden.

Clustered-Indizes sind eindeutig – einer pro Tabelle.Das können sie nicht haben INCLUDEd Spalten.

Nicht gruppierte Indizes sind nicht eindeutig und können bis zu 999 pro Tabelle haben.Sie können enthaltene Spalten und Where-Klauseln enthalten.

Um Indizes zu erstellen, können folgende Dinge verwendet werden:

  1. Erstellt einen Index für eine Tabelle.Doppelte Werte sind zulässig:CREATE INDEX index_name ON table_name (column_name)

  2. Erstellt einen eindeutigen Index für eine Tabelle.Doppelte Werte sind nicht zulässig:CREATE UNIQUE INDEX index_name ON table_name (column_name)

  3. Clustered-Index: CREATE CLUSTERED INDEX CL_ID ON SALES(ID);

  4. Nicht gruppierter Index:
    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES(ProductCode);

Verweisen: http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server für Details.

  1. CREATE INDEX name_index ON Employee (Employee_Name)

  2. Auf einer mehrspaltigen Seite: CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)

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

Nachfolgend finden Sie die Syntax zum Erstellen eines Index in der MongoDB mithilfe der Mongo-Shell.

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

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

Im obigen Beispiel wird ein einzelner Schlüsselabfindungsindex im Feld Name erstellt.

Beachten Sie, dass MongoDB-Indizes eine B-Tree-Datenstruktur verwenden.

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

Nicht immer ist für alle Datenbanken ein Index erforderlich.Zum Beispiel:Kognitio, auch bekannt als WX2-Engine, bietet keine Syntax für die Indizierung, da die Datenbank-Engine diese implizit übernimmt.Die Daten werden über Round-Robin-Partitionierung weitergegeben und Kognitio WX2 holt Daten auf einfachste Weise auf die Festplatte und von dort ab.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top