Mysql
 sql >> Base de données >  >> RDS >> Mysql

Quelles sont les meilleures performances pour récupérer les résultats MySQL EAV sous forme de table relationnelle

La meilleure façon de le savoir serait de tester, bien sûr. La réponse peut être différente selon la taille du jeu de données, le nombre de méta-clés différentes, leur répartition (toutes les entités ont-elles des valeurs pour toutes les méta-clés ? ou seulement pour quelques-unes d'entre elles ?), les paramètres de votre base de données serveur et éventuellement de nombreux autres facteurs.

Si je devais deviner, je dirais que le coût du JOIN les opérations dans l'option 2 seraient inférieures au coût de GROUP BY et agréger les fonctions nécessaires dans les options 1 et 3.

Donc, je m'attendrais à trouver l'option 2 plus rapidement que 1 et 3.

Pour mesurer l'option 4, vous devrez tenir compte de plusieurs facteurs car l'application peut se trouver sur un autre serveur, de sorte que les charges des deux serveurs (base de données et application) et le nombre de clients qui demanderont ces résultats doivent être pris en compte. .

Sidenote :vous avez besoin de GROUP BY e.ID dans les options 1 et 3.