Vad är ett index?
Ett index är en nyckel byggd från en eller flera kolumner i databasen som gör det snabbare att hämta rader från tabellen eller vyn. Denna nyckel hjälper en databas som Oracle, SQL Server, MySQL, etc. att snabbt hitta raden som är associerad med nyckelvärden.
Två typer av index är:
- Clustered Index
- Non-Clustered Index
I denna handledning kommer du att lära dig:
- Vad är ett index?
- Vad är ett grupperat index?
- Vad är icke-grupperat index?
- Kännetecken för klustrade index
- Kännetecken för icke-klustrade index
- Ett exempel på ett klustrat index
- Ett exempel på ett icke- clustered index
- Skillnader mellan Clustered Index och NonClustered Index
- Fördelar med Clustered Index
- Fördelar med icke-clustered index
- Nackdelar med Clustered Index
- Nackdelar med icke-klustrat index
Vad är ett klustrat index?
Klusterindex är en typ av index som sorterar dataraderna i tabellen om deras nyckelvärden. I databasen finns det bara ett klusterindex per tabell.
Ett klusterindex definierar den ordning i vilken data lagras i tabellen, som bara kan sorteras på ett sätt. Så det kan finnas ett enda klusterindex för varje tabell. I en RDBMS tillåter vanligtvis den primära nyckeln att du skapar ett klusterindex baserat på den specifika kolumnen.
Vad är icke-klustrat index?
Ett icke-klustrat index lagrar data på en plats och index på en annan plats. Indexet innehåller pekare till platsen för dessa data. En enda tabell kan ha många icke-klustrade index eftersom ett index i det icke-klustrade indexet lagras på olika platser.
Till exempel kan en bok ha mer än ett index, ett i början som visar innehållet i en bokenhetsmässigt medan det andra indexet visar termerindexet i alfabetisk ordning.
Ett icke-klusterindex definieras i tabellen utan ordning. Denna typ av indexeringsmetod hjälper dig att förbättra prestanda för frågor som använder nycklar som inte tilldelas som en primär nyckel. Ett icke-grupperat index låter dig lägga till en unik nyckel för en tabell.
KEY DIFFERENCE
- Cluster index är en typ av index som sorterar datorraderna i tabellen på sina nyckelvärden medan det icke-klustrade indexet lagrar data på en plats och index på en annan plats.
- Clustered index lagrar datasidor i bladnoderna i indexet medan Icke-clustered index-metoden lagras aldrig datasidor i bladnoderna i indexet.
- Clusterindex kräver inte ytterligare diskutrymme medan det icke-klustrade indexet kräver ytterligare diskutrymme.
- Klusterindex ger snabbare åtkomst till data, å andra sidan är icke-klustrat index långsammare.
Kännetecken för klustrat index
- Standard- och sorterad datalagring
- Använd bara en eller flera kolumner för ett index
- Hjälp att lagra data och indexera tillsammans
- Fragmentering
- Åtgärder
- Clustered index scan and index search
- Key Lookup
Egenskaper för icke-klustrade index
- Spara endast nyckelvärden
- Pekare till hög / klusterade indexrader
- Tillåter sekundär data åtkomst
- Överbrygga till data
- Funktioner för indexsökning och indexsökning
- Du kan skapa en icke klusterindex för en tabell eller vy
- Varje indexrad i det icke-klusterade indexet lagrar det icke-klusterade nyckelvärdet och en radlokaliserare
Ett exempel på ett klustrat index
I exemplet nedan är SalesOrderDetailID det klustrade indexet. Exempelfråga för att hämta data
SELECT CarrierTrackingNumber, UnitPriceFROM SalesDataWHERE SalesOrderDetailID = 6
Ett exempel på ett icke-klustrat index
I exemplet nedan skapas ett icke-klustrat index på OrderQty och ProductID enligt följande
CREATE INDEX myIndex ONSalesData (ProductID, OrderQty)
Följande fråga kommer att hämtas snabbare jämfört med det klustrade indexet.
SELECT Product ID, OrderQtyFROM SalesDataWHERE ProductID = 714
Skillnader mellan grupperade Index och icke-grupperat index
Parametrar | Clustered | Non-clustered |
---|---|---|
Använd för | Du kan sortera posterna och lagra grupperade index fysiskt i minnet enligt ordern . | Ett icke-grupperat index hjälper dig att skapa en logisk ordning för datarader och använder pekare för fysiska datafiler. |
Lagringsmetod | Här kan du lagra datasidor i bladnoderna i indexet. | Den här indexeringsmetoden lagrar aldrig datasidor i indexets bladnoder. |
Storlek | Storleken på det klustrade indexet är ganska stor. | Storleken på det icke-klustrade indexet är litet jämfört med det klustrade indexet. |
Dataåtkomst | Snabbare | Långsammare jämfört med det klustrade indexet |
Ytterligare diskutrymme | Krävs inte | Krävs för att lagra index separat |
Nyckeltyp | Som standard är primära nycklar i tabellen ett grupperat index. | Den kan användas med unik begränsning på bordet som fungerar som en sammansatt nyckel. |
Huvudfunktion | Ett klusterindex kan förbättra datainsamlingens prestanda. | Den ska skapas på kolumner som används i sammanfogningar. |
Fördelar med klustrade index
Fördelarna med det klustrade indexet är:
- Klusterade index är ett perfekt alternativ för intervall eller grupp efter med max-, min-, räkne-typfrågor
- I denna typ av index kan en sökning gå direkt till en specifik punkt i data så att du kan fortsätta läsa sekventiellt därifrån.
- Clustered index-metoden använder lokaliseringsmekanism för att lokalisera indexinmatning i början av ett intervall.
- Det är en effektiv metod för intervallsökningar när ett intervall med söknyckelvärden begärs.
- Hjälper dig att minimera sidöverföringar och maximera cacheträffar.
Fördelar med icke-klustrat index
Fördelar med att använda icke-klustrade index är:
- Ett icke-klusterindex hjälper dig för att snabbt hämta data från databastabellen.
- Hjälper dig att undvika allmänna kostnader som är kopplade till det klustrade indexet
- En tabell kan ha flera icke-klustrade index i RDBMS. Så det kan användas för att skapa mer än ett index.
Nackdelar med grupperat index
Här är nackdelar / nackdelar med att använda klustrade index:
- Massor av inlägg i icke-sekventiell ordning
- Ett klusterindex skapar massor av konstanta siduppdelningar, som inkluderar datasida såväl som indexsidor.
- Extra arbete för SQL för insatser, uppdateringar och raderingar.
- Ett klusterindex tar längre tid att uppdatera poster när fälten i det klustrade indexet ändras.
- Bladnoderna innehåller mestadels datasidor i det klustrade indexet.
Nackdelar med icke-klustrat index
Här är nackdelar / nackdelar med att använda icke-klusterat index: