Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist eine bessere Strategie zum Speichern von Protokolldaten in einer Datenbank?

Wenn alle anderen Dinge gleich sind, können kleinere disjunkte Tabellen einen Leistungsvorteil haben, insbesondere wenn sie schreiblastig sind (wie Tabellen im Zusammenhang mit Protokollen wahrscheinlich sind) – die meisten DB-Mechanismen sind besser darauf abgestimmt, hauptsächlich gelesen, selten geschrieben zu werden Tische. In Bezug auf das Schreiben (und das Aktualisieren von Indizes, die Sie möglicherweise pflegen müssen) sind kleine disjunkte Tabellen ein klarer Gewinn, insbesondere wenn es Parallelität gibt (natürlich abhängig davon, welche Engine Sie für Ihre Tabellen verwenden – das ist ziemlich wichtig Berücksichtigung in mysql!-).

In Bezug auf das Lesen hängt alles von Ihrem Abfragemuster ab – welche Abfragen Sie benötigen und wie oft. In bestimmten Fällen kann es für ein Nutzungsmuster wie das von Ihnen erwähnte einen Leistungsvorteil geben, bestimmte Informationen zu duplizieren – z. Wenn Sie häufig eine aktuelle laufende Summe der Gutschriften oder Belastungen eines Benutzers sowie detaillierte überprüfbare Protokolle darüber benötigen, wie die laufende Summe zustande kam, kann es sinnvoll sein, eine (logisch redundante) Tabelle der laufenden Summen nach Benutzern zu führen gerechtfertigt (sowie die schön getrennten "Protokolltabellen" über die verschiedenen Quellen von Gutschriften und Belastungen).