¿Cuál es la diferencia entre los registros de transacciones y los registros binarios?

9

Viniendo de una tienda de SQL Server, ahora trabajo con MySQL y tenía curiosidad.

¿Cuáles son las diferencias entre el registro binario de MySQL y el registro de transacciones de MSSQL?

Según las perspectivas hasta ahora, parece que solo hay un registro binario por instancia de MySQL en lugar de un registro de transacciones por base de datos como en MSSQL.

Ryan
fuente
Sería increíble ver una comparación entre los dos.
Ryan
hay otra respuesta a esta pregunta dba.stackexchange.com/questions/72904/…
LawrenceLi

Respuestas:

5

Respondiendo solo la parte de MySQL de la pregunta

Un registro binario registra declaraciones SQL completadas. Puede tener muchos registros binarios. Bajo la configuración predeterminada, los registros binarios giran en la marca 1G (ver expire_logs_days y max_binlog_size ).

Puede ver registros binarios ejecutando uno de los siguientes:

SHOW BINARY LOGS;
SHOW MASTER LOGS;

El registro maestro actual es siempre el último de la lista. Para ver solo el último registro binario, que es el actual, ejecute esto:

SHOW MASTER STATUS;

Cuando se trata del motor de almacenamiento InnoDB y las transacciones

  • Hay un archivo de metadatos (ibdata1, que contiene, de manera predeterminada, páginas de datos, páginas de índice, metadatos de tabla e información MVCC ), también conocido como archivo de espacio de tabla InnoDB.
  • Puede tener más de un archivo ibdata (consulte innodb_data_file_path )
  • Hay registros de rehacer (ib_logfile0 e ib_logfile1)
  • Puede tener más de dos registros de rehacer (consulte innodb_log_files_in_group )
  • Puede distribuir datos e índices a través de múltiples archivos ibdata si innodb_file_per_table está deshabilitado
  • Puede separar las páginas de datos e índices de ibdata en archivos de espacio de tabla separados (consulte innodb_file_per_table y StackOverflow Post sobre cómo configurar esto )
RolandoMySQLDBA
fuente
Ah ya veo, gracias por la respuesta Rolando
Ryan