Wir werden die verschiedenen Kategorien von Indizes auf dem Microsoft SQL Server diskutieren. Die Haupttypen von Indizes sind: Clustered-Indizes, nicht klusterierte Indizes, Bree-Indizes und eindeutige Indizes.
Arten von Indizes in Microsoft SQL Server
Clustered Index
Ein Clustered -Index definiert die tatsächliche physikalische Anordnung der Daten in einer Tabelle. Jede Tabelle im SQL-Server kann nur einen Cluster-Index haben, und der Index muss in einer eindeutigen Spalte ohne Null oder Spalten erstellt werden. Da ein Clustered -Index das physikalische Layout einer Tabelle bestimmt, wird er häufig für Tabellen verwendet, die häufig basierend auf ihrem Primärschlüssel oder anderen eindeutigen Werten durchsucht werden.
Erstellen Sie zunächst eine Tabelle und fügen Sie die Werte mit den folgenden SQL -Befehlen ein:
In Kunden einfügen (Customer_ID, Customer_Name, Customer_Email, Customer_phone)Schauen wir uns ein Beispiel eines Cluster -Index an. Um einen Cluster -Index in der Spalte „Customer_id“ zu erstellen, können wir die folgende SQL -Abfrage verwenden:
Erstellen Sie Clustered Index idx_customers_customer_name über Kunden (Customer_Name);Dadurch wird in der Spalte customer_name einen clusterierten Index erstellt.
Um alle Kunden zu holen, deren Name mit dem Buchstaben „A“ beginnt, können wir die folgende SQL -Abfrage verwenden:
WÄHLEN *Ausgang:
customer_id customer_name customer_email customer_phoneNicht klusterer Index
Es handelt sich um eine Art von Index, der die physische Reihenfolge der Daten in einer Tabelle nicht beeinflusst. Ein nicht klusterer Index erzeugt eine unabhängige Datenstruktur, die den Indexschlüssel und den Zeiger auf die zugehörige Datenzeile in der Tabelle speichert. Auf diese Weise können die Abfragen die relevanten Datenzeilen schnell basierend auf den Werten im Index finden. Im Gegensatz zu den Cluster-Indizes können die Tabellen im SQL-Server mehrere nicht klusterierte Indizes haben, und der Index kann in jeder Spalte oder in einer Reihe von Spalten in der Tabelle erstellt werden.
Ein Beispiel für einen nicht klusterierten Index ist wie folgt:
Erstellen Sie nicht klustered Index idx_customer_emailDadurch wird in der Spalte „Customer_email“ einen nicht geklüsterten Index erstellt, in dem die Daten in der Tabelle physikalisch nicht ordnungsgemäß bleiben, der Index jedoch eine sortierte Kopie der Daten in der Spalte „Customer_email“ speichert.
Abrufen Sie alle Kunden ab, deren E -Mail -Adresse das „Google Mail“ enthält.com ”Domain können wir die folgende SQL -Abfrage verwenden:
WÄHLEN *Ausgang:
customer_id customer_name customer_email customer_phoneHier hat kein Kunde eine E -Mail, die das „Google Mail“ enthält.com ”-Domäne, also ist das Ausgangsfeld leer.
Btree Index
Ein Bree -Index ist eine Möglichkeit, die Daten in einer Struktur zu organisieren, die einem Baum ähnelt. Jeder Knoten im Baum enthält einen Bereich von Schlüsselwerten, und jeder Blattknoten enthält einen Zeiger auf die entsprechende Datenzeile. Bree -Indizes werden häufig im SQL -Server verwendet, da sie eine effiziente Suche und Sortierung großer Datenmengen ermöglichen. Sie sind besonders nützlich für Abfragen, die Reichweite oder Sortiervorgänge beinhalten. Zum Beispiel: Gehälter, Telefonnummern usw.
Ein Beispiel für das Erstellen eines BTREE -Index in der Spalte „Customer_phone“ ist wie folgt:
Erstellen Sie Index idx_customer_phoneDadurch wird in der Spalte „Customer_phone“ ein B-Tree-Index erstellt, in dem die Daten im Index in einer Baumstruktur gespeichert sind, wobei jeder Knoten einen Wertebereich und Zeiger auf die anderen Knoten enthält.
Jetzt möchten wir alle Kunden abrufen, deren Telefonnummer mit der Vorwahl von „555“ mit der folgenden SQL -Abfrage beginnt:
WÄHLEN *Ausgang:
customer_id customer_name customer_email customer_phoneEindeutiger Index
Es ist eine Art Index, der sicherstellt, dass keine zwei Zeilen in einer Tabelle den gleichen Schlüsselwert haben. Dies kann nützlich sein, um die Datenintegrität durchzusetzen und die doppelten Datensätze in einer Tabelle zu verhindern.
Ein Beispiel für das Erstellen eines eindeutigen Index in der Spalte „Customer_email“ ist wie folgt:
Erstellen index idx_customer_email_newDies erstellt einen eindeutigen Index in der Spalte „Customer_email“, in der der Index eine Einschränkung erzwingt, die sicherstellt.
Fügen Sie nun einen neuen Kunden mit dem „lili@gmail in den tisch ein.com ”E -Mail und abrufen mit der folgenden SQL -Abfrage:
In Kunden einfügen (Customer_ID, Customer_Name, Customer_Email, Customer_phone)Ausgang:
customer_id customer_name customer_email customer_phoneAbschluss
Indizes spielen eine wichtige Rolle bei der Optimierung der Leistung der SQL Server -Datenbanken. Das Verständnis der verschiedenen Arten von Indizes kann den Datenbankadministratoren helfen, den am besten geeigneten Indextyp für ihre Anwendungen zu wählen. Durch die effektive Erstellung und Aufrechterhaltung der Indizes können Unternehmen sicherstellen, dass ihre Datenbanken effizient funktionieren, sodass sie datengesteuerte Entscheidungen treffen und ihren Kunden einen besseren Service bieten können.