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

mysql for mange indekser?

Datahentning -- SELECT-udsagn.

Datamanipulation -- INSERT, UPDATE, DELETE statements.

Hvis du føler, at du ønsker at opnå bedre datahentningsydelse.

På tabeller, der vil se omfattende datamanipulation -- indsættelse, opdatering...

Forespørgsler skal adressere rækkefølgen af ​​kolonner, når de handler med et dækkende indeks (et indeks på mere end én kolonne), fra venstre mod højre i indekskolonnedefinition. Kolonnerækkefølgen i sætningen er ligegyldig, kun kolonne 1, 2 og 3 - en erklæring skal have en reference til kolonne 1, før indekset kan bruges. Hvis der kun er en reference til kolonne 2 eller 3, kunne det dækkende indeks for 1/2/3 ikke bruges.

I MySQL kan der kun bruges ét indeks pr. SELECT/udsagn i forespørgslen (underforespørgsler/etc ses som et separat udsagn). Og der er en grænse for mængden af ​​plads pr. bord, som MySQL tillader. Derudover gør kørsel af en funktion på en indekseret kolonne indekset ubrugeligt - IE:

WHERE DATE(datetime_column) = ...


  1. Hvad er ressourcenummer?

  2. Er en VARCHAR(20000) gyldig i MySQL?

  3. Minimering af SQL-forespørgsler ved hjælp af join med en-til-mange-relation

  4. Brug DB_ID() til at returnere id'et for en database i SQL Server