Я работаю над проектом, для которого мы должны использовать «журналирование транзакций» в нашей СУБД (MySQL). Мы уже перешли на использование InnoDB, чтобы использовать транзакции для другого требования. Я пытаюсь понять, что такое журналирование транзакций. Я искал уже более дня, включая чтение через документацию MySQL. Возможно, я просто не ищу подходящие ключевые слова, я не уверен. Или, может быть, «ведение журнала транзакций» является неприемлемой терминологией.Журналы транзакций MySQL
Насколько я понимаю, ведение журнала транзакций базы данных аналогично файловой системе журнала, в которой изменения внесены в журнал до того, как они будут привязаны к файловой системе. Из того, что я читал, похоже, что движок InnoDB хранит транзакции в каком-то журнале до того, как они привязаны к диску. Звучит ли это правильно? Если да, то где журнал транзакций? Это ib_logfile0 и ib_logfile1?
Я понимаю, что эти файлы журналов предназначены для восстановления после сбоя, но не являются ли механизмы MVCC ответственными за «транзакцию», чтобы нормально работать, когда не происходит сбой? MyISAM имеет некоторую степень восстановления после сбоя, в то время как у него нет транзакций вообще. – karatedog
Благодарим вас за подробный и своевременный ответ. Я немного запутался в воспроизведении записей в журналах.Если произошел сбой в середине транзакции, до того, как была выпущена фиксация, я бы подумал, что вы не захотите воспроизводить записи, так как транзакции все или ничего (вы не хотите, чтобы часть транзакции быть совершены). Или вы говорите, что они будут воспроизведены только в том случае, если произошел коммит, но произошел сбой до того, как транзакция была передана базе данных, но после того, как она была сохранена в файлах журнала? – alfredough