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

Desempenho do MySQL JOIN em 1 tabela grande e várias tabelas pequenas


Como é um relacionamento "um para muitos", eu os armazenaria em uma tabela separada. O otimizador de consulta do servidor SQL (sob o capô) poderá analisar os 250 registros com rapidez suficiente para que isso não seja uma preocupação. Além disso, dependendo do tamanho dos valores na tabela menor, você economizará espaço de armazenamento ao não armazená-los centenas de milhões de vezes adicionais. No entanto, se o desempenho dos relatórios for de extrema importância, você pode optar por armazená-los em uma tabela "achatada" - como uma estrutura de data warehouse, sem as junções. Isso definitivamente será mais rápido, mas você sacrificaria o espaço de armazenamento e seu banco de dados relacional bem estruturado.

Dito tudo isso, eu escolheria a opção 1. Mas você deve ser capaz de armazenar facilmente os dados em uma nova tabela com o formato da opção 2 - consultar os dois - e então avaliar o desempenho por conta própria. Espero que não seja muita diferença, especialmente considerando a capacidade de suas mesas menores.