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

Modelo de valor de atributo de entidade - Alternativa de desempenho?


Primeiro , às vezes esse modelo facilita muito a consulta de dados. Fiz uma pergunta alguns dias atrás aqui e alguns usuários sugeriram por que eu não mudei meu modelo para um formulário 1NF para facilitar a consulta de dados. Somente quando eles perceberam que eu estava preso a esse design, eles forneceram algumas respostas para a pergunta. A questão é que tive a sorte de ter apenas 12 colunas para resumir; caso contrário, se minha tabela contivesse 300 colunas, talvez nenhum usuário se preocupasse em escrever uma consulta para esse problema. :-)

Segundo , às vezes a implementação desse design é mais fácil devido a algumas limitações naturalmente impostas pelos bancos de dados. Se sua meta_key os valores contêm alguns valores longos maiores que 30 caracteres, ou você precisa encurtar os valores e fazer o mapeamento em algum lugar ou essa seria a única opção que você poderia ter.

Finalmente , o desempenho é muito importante; isso é verdade. Mas, por outro lado, existem certas técnicas que você pode aplicar para melhorar o desempenho; como criar índices adequados, particionar tabelas e assim por diante.

Neste caso, os tamanhos das tabelas são muito pequenos. Portanto, a menos que suas consultas sejam muito complicadas, como ter cálculos pesados ​​e junções e agregações complicadas, e se o aplicativo não for sensível a pequenas frações de tempo, acho que você não sofreria com o desempenho se adotasse esse modelo.

No final , se você ainda estiver muito preocupado com o desempenho, sugiro criar os dois modelos, preenchê-los com alguns dados aleatórios ou reais e analisar os custos do plano para ver qual modelo atende melhor às suas necessidades.