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

Quelle est la meilleure stratégie pour stocker les données de journal dans une base de données ?

Toutes choses étant égales par ailleurs, les petites tables disjointes peuvent avoir un avantage en termes de performances, en particulier lorsqu'elles sont lourdes en écriture (comme les tables liées aux journaux sont susceptibles de l'être) - la plupart des mécanismes de base de données sont mieux réglés pour la plupart des lectures, rarement écrites les tables. En termes d'écriture (et de mise à jour des index que vous pourriez avoir à maintenir), les petites tables disjointes sont une victoire évidente, surtout s'il y a une concurrence (selon le moteur que vous utilisez pour vos tables, bien sûr -- c'est un élément assez important considération dans mysql !-).

En termes de lecture, tout dépend de votre modèle de requêtes - de quelles requêtes aurez-vous besoin et à quelle fréquence. Dans certains cas, pour un modèle d'utilisation tel que celui que vous mentionnez, la duplication de certaines informations peut présenter un avantage en termes de performances, par exemple. si vous avez souvent besoin d'un total instantané des crédits ou débits d'un utilisateur, ainsi que de journaux auditables détaillés sur la façon dont le total cumulé a été obtenu, il peut être utile de conserver un tableau (logiquement redondant) des totaux cumulés par utilisateur. garanti (ainsi que les "tables de journal" bien séparées sur les différentes sources de crédits et de débits).