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

Hvad er den bedste ydeevne til at hente MySQL EAV-resultater som relationstabel

Den bedste måde at finde ud af det på ville selvfølgelig være at teste. Svaret kan være forskelligt afhængigt af datasættets størrelse, antallet af forskellige meta-nøgler, deres fordeling (har alle entiteter værdier for alle meta-nøgler? eller kun for nogle få af dem?), indstillingerne for din database server og muligvis mange andre faktorer.

Hvis jeg skulle gætte, ville jeg sige, at prisen på JOIN operationer i mulighed 2 ville være mindre end prisen på GROUP BY og aggregerede funktioner, der er nødvendige i valgmulighed 1 og 3.

Så jeg ville forvente at finde mulighed 2 hurtigere end 1 og 3.

For at måle mulighed 4 skal du overveje flere faktorer, da applikationen kan være på en anden server, så belastningen af ​​de to (db og applikations) servere og antallet af klienter, der vil anmode om disse resultater, skal tages i betragtning .

Sidenote:du skal bruge GROUP BY e.ID i valgmulighed 1 og 3.



  1. Hvad betyder kolonneflag i MySQL Workbench?

  2. PostgreSQL oprettelsesfunktion

  3. Er der en måde at bruge ARRAYs i Entity Framework + PostgreSql

  4. Hvad er brugen af ​​SQL GROUP BY-erklæring?