sql >> Databasteknik >  >> RDS >> Oracle

Hur vet man vad ett bra index är?

Detta beror på vad du menar med "bra" och "dåligt". I grund och botten måste du inse att varje index du lägger till kommer att öka prestandan för alla sökningar med den kolumnen (så att lägga till ett index i kolumnen 'efternamn' i en persontabell kommer att öka prestandan på frågor som har "där efternamn =" i dem) men minska skrivprestandan över hela tabellen.

Anledningen till detta är att när du lägger till eller uppdaterar en rad måste den läggas till eller uppdatera både själva tabellen och varje index som raden är medlem i. Så om du har fem index på en tabell, måste varje tillägg skriva till sex platser - fem index och tabellen - och en uppdatering kan i värsta fall röra upp till sex platser.

Indexskapande är då en balansgång mellan frågehastighet och skrivhastighet. I vissa fall, till exempel en datamart som bara laddas med data en gång i veckan i ett övernattningsjobb men som frågas tusentals gånger dagligen, är det mycket meningsfullt att överbelasta med index och påskynda frågorna så mycket som möjligt. När det gäller system för onlinetransaktionsbehandling vill du dock försöka hitta en balans mellan dem.

Så kort sagt, lägg till index i kolumner som används mycket i utvalda frågor, men försök att undvika att lägga till för många och lägg till de mest använda kolumnerna först.

Efter det är det en fråga om belastningstestning för att se hur prestandan reagerar under produktionsförhållanden, och en hel del justeringar för att hitta en acceptabel balans.



  1. När ska du använda SQL Server med Access? (Tips:Nästan alltid)

  2. De 50 bästa SQL Server-intervjufrågorna du måste förbereda 2022

  3. Kan inte komma åt förbefolkad SQLite-databas med PhoneGap/Cordova i Android

  4. De bästa ETL-verktygen för att migrera till PostgreSQL