sql >> Database teknologi >  >> RDS >> Mysql

Alle kolonner i tabellen skal indekseres eller ej mysql database?

Oprettelse af et indeks kræver ekstra diskplads, og at for mange indekser kan forårsage problemer som følge af filsystemernes størrelsesgrænser, skal der overvejes nøje for at vælge de korrekte felter til indeksering.

Da indekser kun bruges til at fremskynde søgningen efter et matchende felt i posterne, er det naturligt, at indeksering af felter, der kun bruges til output, simpelthen vil være spild af diskplads og behandlingstid, når du udfører en indsættelses- eller sletningsoperation, og dermed bør undgås. Også givet karakteren af ​​en binær søgning, er kardinaliteten eller unikheden af ​​dataene vigtig. Indeksering på et felt med en kardinalitet på 2 ville dele dataene i to, hvorimod en kardinalitet på 1.000 ville returnere cirka 1.000 poster. Med en så lav kardinalitet reduceres effektiviteten til en lineær sortering, og forespørgselsoptimeringsværktøjet vil undgå at bruge indekset, hvis kardinaliteten er større end 30 % af rekordtallet, hvilket effektivt gør indekset til spild af plads.

Så bedre at tilføje indeksering på gruppe af kolonner.



  1. mysqldump med flere tabeller med eller uden where-klausul

  2. Enkel måde at beregne medianen med MySQL

  3. Forespørgselsbutik:Viser indvirkningen af ​​indekser på indstik

  4. Databasenavngivningskonventioner fra Microsoft?