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

Práticas recomendadas com dados históricos no banco de dados MySQL


É um erro comum se preocupar com tabelas e desempenho "grandes". Se você pode usar índices para acessar seus dados, realmente não importa se você tem 1.000 de 1.000.000 registros - pelo menos não para poder medir. O design que você menciona é comumente usado; é um ótimo design em que o tempo é uma parte fundamental da lógica de negócios.

Por exemplo, se você quiser saber qual era o preço de um item no momento em que o cliente fez o pedido, poder pesquisar registros de produtos onde valid_from order_date é de longe a solução mais fácil.

Isso nem sempre é o caso - se você estiver mantendo os dados apenas para fins de arquivamento, pode fazer mais sentido criar tabelas de arquivamento. No entanto, você precisa ter certeza de que o tempo é realmente não faz parte da lógica de negócios, caso contrário, a dor de pesquisar em várias tabelas será significativa - imagine ter que pesquisar na tabela de produtos OU na tabela product_archive toda vez que você quiser descobrir o preço de um produto no momento em que o pedido foi feito .