Qual é a diferença entre logs de transações e logs binários?

9

Vindo de uma loja do SQL Server, agora trabalho com o MySQL e fiquei curioso.

Quais são as diferenças entre o log binário do MySQL e o log de transações do MSSQL?

Pela perspectiva até agora, parece que existe apenas um log binário por instância do MySQL, em oposição a um log de transações por banco de dados, como no MSSQL.

Ryan
fonte
Seria incrível ver uma comparação entre os dois.
Ryan
há outra resposta a esta pergunta dba.stackexchange.com/questions/72904/...
LawrenceLi

Respostas:

5

Respondendo apenas à parte MySQL da pergunta

Um registro binário registra instruções SQL concluídas. Você pode ter muitos logs binários. Nas configurações padrão, os logs binários são rotacionados na marca 1G (consulte expire_logs_days e max_binlog_size ).

Você pode ver logs binários executando um dos seguintes procedimentos:

SHOW BINARY LOGS;
SHOW MASTER LOGS;

O registro mestre atual é sempre o último da lista. Para ver apenas o último log binário, que é o atual, execute o seguinte:

SHOW MASTER STATUS;

Quando se trata de mecanismo e transações de armazenamento InnoDB

  • Há um arquivo de metadados (ibdata1, que contém, por padrão, páginas de dados, páginas de índice, metadados da tabela e informações do MVCC ), também conhecido como arquivo de espaço de tabela do InnoDB.
  • Você pode ter mais de um arquivo ibdata (consulte innodb_data_file_path )
  • Existem logs refazer (ib_logfile0 e ib_logfile1)
  • Você pode ter mais de dois logs de refazer (consulte innodb_log_files_in_group )
  • Você pode espalhar dados e índices entre vários arquivos ibdata se innodb_file_per_table estiver desativado
  • É possível separar dados e páginas de índice do ibdata em arquivos de espaço de tabela separados (consulte innodb_file_per_table e StackOverflow Post sobre como configurar isso )
RolandoMySQLDBA
fonte
Ah eu vejo, obrigado pela resposta Rolando
Ryan