sql >> Databasteknik >  >> RDS >> Mysql

mysql för många index?

Datahämtning -- SELECT-satser.

Datamanipulation -- INSERT, UPDATE, DELETE-satser.

Om du känner att du vill få bättre prestanda för datahämtning.

På tabeller som kommer att se tung datamanipulation -- infogning, uppdatering...

Frågor måste adressera kolumnernas ordning när det handlar om ett täckande index (ett index på mer än en kolumn), från vänster till höger i indexkolumndefinitionen. Kolumnordningen i påståendet spelar ingen roll, bara kolumnerna 1, 2 och 3 - ett påstående måste ha en referens till kolumn 1 innan indexet kan användas. Om det bara finns en referens till kolumn 2 eller 3, kunde det täckande indexet för 1/2/3 inte användas.

I MySQL kan endast ett index användas per SELECT/sats i frågan (subqueries/etc ses som en separat sats). Och det finns en gräns för hur mycket utrymme per tabell som MySQL tillåter. Dessutom, att köra en funktion på en indexerad kolumn gör indexet värdelöst - IE:

WHERE DATE(datetime_column) = ...


  1. SQL:Jämför två räkningar från olika tabeller

  2. Ändra en CHECK-begränsning i SQL Server med T-SQL

  3. Konsten att samla data i SQL från enkla till glidande aggregationer

  4. hibernate, mysql, glassfish v3 och JTA datakälla