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

Qual é a melhor estratégia para armazenar dados de log em um banco de dados?


Todas as outras coisas sendo iguais, tabelas disjuntas menores podem ter uma vantagem de desempenho, especialmente quando são pesadas de gravação (como é provável que as tabelas relacionadas a logs sejam) -- a maioria dos mecanismos de banco de dados é melhor ajustada para leitura principalmente, raramente escrita mesas. Em termos de escrita (e atualização de quaisquer índices que você possa ter que manter), pequenas tabelas disjuntas são uma vitória clara, especialmente se houver alguma simultaneidade (dependendo do mecanismo que você está usando para suas tabelas, é claro - isso é muito importante consideração no mysql!-).

Em termos de leitura, tudo depende do seu padrão de consultas – quais consultas você precisará e com que frequência. Em certos casos, para um padrão de uso como você mencionou, pode haver alguma vantagem de desempenho na duplicação de certas informações - por exemplo, se você precisar de um total atualizado instantâneo dos créditos ou débitos de um usuário, bem como logs auditáveis ​​detalhados de como o total atual veio a ser, manter uma tabela (logicamente redundante) de totais atuais por usuários pode ser garantido (assim como as "tabelas de log" bem separadas sobre as várias fontes de créditos e débitos).