Wie kann ich Index eine Datenbankspalte

stimmen
48

Hoffentlich kann ich Antworten für jeden Datenbankserver erhalten.

Für einen Überblick, wie die Indizierung Arbeiten überprüfen: Wie funktioniert Datenbankindizierung Arbeit?

Veröffentlicht am 04/08/2008 um 12:21
quelle vom benutzer
In anderen Sprachen...                            


9 antworten

stimmen
54

Hier finden Sie SQL92-Standard, so sollte von der Mehrheit der RDMBS, die SQL verwenden unterstützt werden:

CREATE INDEX [index name] ON [table name] ( [column name] )
Beantwortet am 04/08/2008 um 12:25
quelle vom benutzer

stimmen
6

SQL Server 2005 bietet die Möglichkeit, einen abdeckenden Index angeben. Dies ist ein Index, die Daten aus anderen Spalten auf der Blattebene enthält, so müssen Sie nicht auf den Tisch zurück Spalt zu erhalten, die nicht in dem Indexschlüssel enthält.

Erstellen nicht gruppierten Index my_idx auf my_table (my_col1 ASC, ASC my_col2) umfassen (my_col3);

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

Beantwortet am 13/08/2008 um 15:05
quelle vom benutzer

stimmen
4

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

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

(Ohne Berücksichtigung einige erweiterte Optionen ...)

Der Name jeder Index muss breit einzigartige Datenbank sein.

Alle Indizes können mehrere Spalten haben, und jede Spalte kann in bestellt werden, was auch immer gewünschten Reihenfolge.

Clustered - Indizes sind einzigartig - eine pro Tisch. Sie können nicht haben INCLUDEd Spalten.

Nonclustered-Indizes sind nicht eindeutig, und kann bis zu 999 pro Tisch. Sie können Spalten enthalten sind, und wo Klauseln.

Beantwortet am 15/06/2012 um 19:01
quelle vom benutzer

stimmen
4

Für Python pytables, Indizes haben Namen nicht, und sie sind auf einzelne Spalten gebunden:

tables.columns.column_name.createIndex()
Beantwortet am 23/01/2012 um 16:13
quelle vom benutzer

stimmen
2

Sie sollten nur Index die Säulen, auf denen führen Sie häufige Such / Abfragen.

Angenommen, Sie eine Tabelle mit dem Namen Die Schüler haben, wo Sie StudentID speichern, Namens-, Kurs, Grad usw. Und Sie müssen häufig die StudentID Spalte für Informationen über bestimmte Studenten suchen.

SELECT Name, Course, Grade

FROM Students

WHERE StudentID = 111025

Sie sollten einen Index für diese Spalte erstellen, da es den Suchprozess beschleunigen wird. 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, etwas wählen, das für Sie Sinn machen.

Allerdings wird das Erstellen eines Index einigen Aufwand zur Datenbank hinzufügen. Es gibt viele Tools , die helfen können, zum Beispiel, ich bin mit SQLDbm , wie ich es mir am besten passt.

Beantwortet am 29/08/2017 um 09:53
quelle vom benutzer

stimmen
2

So erstellen Indizes Sachen folgende können verwendet werden:

  1. Erstellt einen Index für eine Tabelle. Doppelte Werte sind zulässig:

    CREATE INDEX index_name ON Tabellen_Name (Spalten_Name)

  2. Erstellt einen eindeutigen Index auf einem Tisch. Doppelte Werte sind nicht zulässig:

    CREATE UNIQUE INDEX index_name ON Tabellen_Name (Spalten_Name)

  3. Clustered-Index

    CREATE gruppierten Index CL_ID ON SALES (ID);

  4. Non-Clustered-Index

    CREATE NONCLUSTERED INDEX NONCI_PC ON SALES (Produktcode);

siehe http://www.codeproject.com/Articles/190263/Indexes-in-MS-SQL-Server für weitere Einzelheiten.

Beantwortet am 02/06/2015 um 13:38
quelle vom benutzer

stimmen
1

1.

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

    CREATE INDEX name_index ON Employee (Employee_Name, Employee_Age)
    
Beantwortet am 17/01/2017 um 10:48
quelle vom benutzer

stimmen
0

Ein Index wird für alle Datenbanken nicht immer erforderlich. Für zB: Kognitio aka WX2 Motor bietet keine Syntax für die Indizierung als die Datenbank-Engine Pflege implizit nimmt. Daten gehen über Round-Robin-Partitionierung und Kognitio WX2 bekommt Daten und Ausschalten Platte auf möglichst einfache Art und Weise.

Beantwortet am 05/06/2018 um 10:24
quelle vom benutzer

stimmen
0

Da die meisten der Antworten für SQL-Datenbanken gegeben sind, schreibe ich das für NoSQL-Datenbanken, die speziell für MongoDB.

Unten ist die Syntax eines Index in der MongoDB Verwendung mongo Schale zu schaffen.

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

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

Im obigen Beispiel wird ein einzelner Schlüssel absteigender Index auf dem Namensfeld erstellt.

Denken Sie daran, MongoDB Indizes verwendet B-Baum-Datenstruktur.

Es gibt mehrere Arten von Indizes wir in mongodb, für weitere Informationen siehe unten Link erstellen können - https://docs.mongodb.com/manual/indexes/

Beantwortet am 01/06/2018 um 19:05
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more