Изолированность
Изолированность означает, что все транзакции происходят в их собственном пространстве, изолированном от других транзакций, которые могут в это же время выполняться в системе, а результаты транзакции будут видимы только тогда, когда вся последовательность событий, составляющих транзакцию, будет выполнена полностью. Даже если в такой системе происходит одновременно сразу же несколько транзакций, принцип изолированности гарантирует, что результат конкретной транзакции не будет "виден" до того, пока эта транзакция не будет полностью завершена.
Это очень важно в том случае, если система поддерживает множество одновременно работающих пользователей и соединений (что справедливо в случае MySQL). Системы, не удовлетворяющие этому фундаментальному принципу, могут вызывать массовое разрушение данных, по мере того как целостность индивидуального пространства каждой транзакции будет быстро нарушена другими параллельно выполняющимися и при этом зачастую конфликтующими транзакциями.
Нужно отметить, что MySQL предлагает использование переменных-семафоров на стороне сервера, играющих роль диспетчеров трафика. Эти переменные могут быть полезны для снятия излишней нагрузки с диспетчеров транзакции. Таблицы типа InnoDB имеют возможность обеспечения изолированности транзакций, включающих несколько запросов, в то время как таблицы типа MyISAM позволяют моделировать изолированность посредством команды LOCK TABLES.
Надежность
Надежность означает, что изменения, произведенные транзакцией, сохраняются даже при полном отказе системы и могут быть использованы, когда транзакция завершена, и регистрационные журналы в базе данных полностью модифицированы. В большинстве реляционных СУБД целостность данных обеспечивается с помощью регистрационных журналов, в которых фиксируются все изменения, произошедшие в базе данных. Этот регистрационный журнал хранит изменения всех модификаций, сделанных в таблицах, запросах, отчетах и т.д. Но активизация протоколирования в базу данных, когда это касается записи данных, существенно замедлит производительность вашей базы данных. (Однако это никак не повлияет на скорость обработки ваших запросов.)
В MySQL можно задать использование транзакций, выбрав соответствующий дескриптор таблиц. Так, дескриптор InnoDB выполняет протоколирование в регистрационные журналы несколько иначе, чем дескриптор BDB, а вот таблицы типа MyISAM не поддерживают таких типов журналов, которые позволили бы вам полностью обеспечить надежность базы данных. По умолчанию таблицы типа InnoDB являются надежными на 100% до последней секунды перед отказом работы компьютера. Таблицы типа MyISAM характеризуются частичной надежностью - на диске гарантированно сохраняются все изменения, выполненные до выполнения последнего оператора FLUSH TABLES.
Например, СУБД SQL Server и Oracle могут восстанавливать базу данных в исходное состояние, посредством восстановления предварительно зарезервированных баз данных и, по сути "воспроизводят" все последовательные транзакции вплоть до момента отказа. Эти побочные результаты функционирования баз данных не предназначены для прямого использования и для просмотра внутреннего строения структур данных, файлов регистрации, т.к. эти файлы составляют внутреннюю часть механизма восстановления базы данных.
СУБД MySQL также ведет двоичный журнал регистрации активности по манипуляции данными. Однако, в отличие от журналов в других базах данных, эти журналы легко читаются, что означает, что их прямой задачей является восстановление потерянных данных с использованием последней резервной копии в совокупности с регистрационным журналом.