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

Qual è la migliore prestazione per il recupero dei risultati MySQL EAV come tabella relazionale

Il modo migliore per scoprirlo sarebbe fare un test, ovviamente. La risposta potrebbe essere diversa a seconda della dimensione del set di dati, del numero di diverse meta-chiavi, della loro distribuzione (tutte le entità hanno valori per tutte le meta-chiavi? o solo per alcune di esse?), delle impostazioni del tuo database server e forse molti altri fattori.

Se dovessi indovinare, direi che il costo del JOIN le operazioni nell'opzione 2 sarebbero inferiori al costo di GROUP BY e le funzioni aggregate necessarie nelle opzioni 1 e 3.

Quindi, mi aspetto di trovare l'opzione 2 più veloce di 1 e 3.

Per misurare l'opzione 4, dovrai considerare più fattori poiché l'applicazione potrebbe trovarsi in un altro server, quindi è necessario tenere conto del carico dei due server (db e applicazione) e del numero di client che richiederanno questi risultati .

Nota a margine:è necessario GROUP BY e.ID nelle opzioni 1 e 3.