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

Meilleures pratiques avec les données historiques dans la base de données MySQL

C'est une erreur courante de se soucier des "grandes" tables et des performances. Si vous pouvez utiliser des index pour accéder à vos données, cela n'a pas vraiment d'importance si vous avez 1 000 enregistrements sur 1 000 000 - du moins pas autant que vous pourriez le mesurer. La conception que vous mentionnez est couramment utilisée; c'est une excellente conception où le temps est un élément clé de la logique métier.

Par exemple, si vous voulez savoir quel était le prix d'un article au moment où le client a passé la commande, être en mesure de rechercher des enregistrements de produits où valid_from order_date est de loin la solution la plus simple.

Ce n'est pas toujours le cas - si vous conservez les données uniquement à des fins d'archivage, il peut être plus judicieux de créer des tables d'archivage. Cependant, vous devez être sûr que le temps est vraiment ne fait pas partie de la logique métier, sinon la difficulté de rechercher plusieurs tables sera importante - imaginez devoir rechercher soit la table product OU la table product_archive chaque fois que vous souhaitez connaître le prix d'un produit au moment où la commande a été passée .