sql >> Databasteknik >  >> RDS >> Mysql

MySQL-index – hur många räcker?

Mängden indexering och linjen för att göra för mycket kommer att bero på många faktorer. På små tabeller som din "kategorier"-tabell vill du vanligtvis inte ha eller behöver ett index och det kan faktiskt skada prestandan. Anledningen är att det tar I/O (d.v.s. tid) att läsa ett index och sedan mer I/O och tid att hämta de poster som är associerade med de matchade raderna. Ett undantag är när du bara frågar efter kolumnerna som finns i indexet.

I ditt exempel hämtar du alla kolumner och med bara 22 rader och det kan vara snabbare att bara göra en tabellskanning och sortera dem istället för att använda indexet. Optimeraren kanske/bör göra detta och ignorerar indexet. Om så är fallet tar indexet bara upp plats utan någon nytta. Om din "kategori"-tabell används ofta, kanske du vill överväga att fästa den i minnet så att db-servern håller den tillgänglig utan att behöva gå till disken hela tiden.

När du lägger till index måste du balansera ut diskutrymme, frågeprestanda och prestanda för uppdatering och infogning i tabellerna. Du kan komma undan med fler index på tabeller som är statiska och inte förändras mycket i motsats till tabeller med miljontals uppdateringar om dagen. Du kommer att börja känna effekterna av indexupprätthållande vid den tidpunkten. Vad som är acceptabelt i din miljö är och kan bara bestämmas av dig och din organisation.

När du gör din analys, se till att generera/uppdatera din tabell- och indexstatistik så att du kan vara säker på korrekta beräkningar.



  1. mysql min där uttalande

  2. Hur bygger man en kolvapplikation runt en redan befintlig databas?

  3. Hur kan jag rensa ett transaktionsstopp?

  4. ListView från Sqlite i Android