Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é o melhor desempenho para recuperar resultados do MySQL EAV como tabela relacional


A melhor maneira de descobrir seria testar, é claro. A resposta pode ser diferente dependendo do tamanho do conjunto de dados, do número de meta-chaves diferentes, sua distribuição (todas as entidades têm valores para todas as meta-chaves? ou apenas para algumas delas?), as configurações do seu banco de dados servidor e possivelmente muitos outros fatores.

Se eu fosse adivinhar, diria que o custo do JOIN as operações na opção 2 seriam menores que o custo de GROUP BY e agregar funções necessárias nas opções 1 e 3.

Então, eu esperaria encontrar a Opção 2 mais rápido que 1 e 3.

Para medir a Opção 4, você terá que considerar mais fatores, pois o aplicativo pode estar em outro servidor, portanto, as cargas dos dois servidores (db e aplicativo) e o número de clientes que solicitarão esses resultados devem ser levados em consideração .

Nota lateral:você precisa de GROUP BY e.ID nas opções 1 e 3.