Spec-Zone .ru
спецификации, руководства, описания, API

1.8.5.3. Транзакция и Атомарные Различия в Работе

MySQL Server (3.23-максимальная версия и все версии 4.0 и выше) поддерживает транзакции с InnoDB транзакционный механизм хранения. В MySQL 5.5 и, недавно создаваемое табличное использование InnoDB по умолчанию, как объяснено в Разделе 14.2.1.1,"InnoDB как Механизм Хранения MySQL Default". По умолчанию, InnoDB обеспечивает полное соответствие ACID; см. Раздел 14.2.8, "MySQL и Модель ACID" для способов, которыми можно скорректировать настройки, чтобы сбалансировать соответствие ACID с необработанной производительности. Для получения информации о InnoDB различия от стандартного SQL относительно обработки ошибок транзакции, см. Раздел 14.2.3.14,"InnoDB Обработка ошибок".

Нетранзакционные механизмы хранения в MySQL Server (такой как MyISAM) следуйте за различной парадигмой для целостности данных, вызванной "атомарные операции". MyISAM таблицы эффективно всегда работают в autocommit = 1 режим. Поскольку измененные данные пишутся диску один оператор за один раз, более трудно гарантировать непротиворечивость последовательности связанных операций DML, которые могли быть прерваны отчасти через. Таким образом этот режим является подходящим для рабочих нагрузок чтения главным образом. В транзакционных сроках, в то время как каждое определенное обновление работает, никакой другой пользователь не может вмешаться в него, никогда не может быть автоматического отката, и нет никаких грязных чтений. Однако, эти функции применяются к единственным операциям, не связанным обновлениям, которые успешно выполняются или перестали работать как модуль. Обходные решения такой как LOCK TABLES предел оператора параллельный доступ для записи к нетранзакционным таблицам.

Можно выбрать который парадигма использовать, даже для различных таблиц в пределах того же самого приложения: транзакционные функции надежности, объединенной с высокой производительностью, или атомарными операциями для некритического, данных чтения главным образом (например, на ведомых серверах репликации).

Транзакционные механизмы хранения такой как InnoDB предложите много существенных функций, чтобы поддерживать высокую надежность для тяжелых рабочих нагрузок чтения-записи. В результате у транзакционных таблиц могут быть более высокая память и требования к пространству на диске, и больше издержек ЦП. Модульная конструкция Сервера MySQL позволяет параллельному использованию различных механизмов хранения удовлетворить различным требованиям и поставить оптимальную производительность во всех ситуациях.

Обходные решения для Надежности с Нетранзакционными Таблицами

Но как делают Вы используете функции MySQL Server, чтобы поддержать целостность даже с нетранзакционным MyISAM таблицы, и как эти функции сравниваются с транзакционными механизмами хранения?

Следующее является некоторыми методами для того, чтобы работать с нетранзакционными таблицами: