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

Modèle de valeur d'attribut d'entité - Alternative de performance ?

Premier , ce modèle facilite parfois l'interrogation des données. J'ai posé une question il y a quelques jours ici et certains utilisateurs ont suggéré pourquoi je n'ai pas changé mon modèle en un formulaire 1NF pour faciliter l'interrogation des données. Ce n'est que lorsqu'ils ont réalisé que j'étais coincé avec cette conception qu'ils ont fourni des réponses à la question. Le fait est que j'ai eu la chance de n'avoir que 12 colonnes à résumer; sinon, si ma table contenait 300 colonnes, peut-être qu'aucun utilisateur ne s'est donné la peine d'écrire une requête pour ce problème. :-)

Deuxième , parfois la mise en œuvre de cette conception est plus facile en raison de certaines limitations naturellement imposées par les bases de données. Si votre meta_key les valeurs contiennent des valeurs longues de plus de 30 caractères, soit vous devez raccourcir les valeurs et faire le mappage quelque part, soit cela pourrait être la seule option que vous pourriez avoir.

Enfin , la performance est très importante; c'est vrai. Mais, d'un autre côté, il existe certaines techniques que vous pouvez appliquer pour améliorer les performances; par exemple en créant des index appropriés, en partitionnant des tables, etc.

Dans ce cas, les tailles de table sont très petites. Donc, à moins que vos requêtes ne soient très compliquées, comme des calculs lourds et des jointures et agrégations compliquées, et si l'application n'est pas sensible aux petites fractions de temps, je suppose que vous ne souffririez pas des performances si vous adoptiez ce modèle.

À la fin , si vous êtes encore trop préoccupé par les performances, je vous suggère de créer les deux modèles, de les remplir avec des données aléatoires ou réelles, et d'analyser les coûts du plan pour voir quel modèle correspond le mieux à vos besoins.