# Главная
# О библиотеке

# Выбор дистрибутива
преимущества Linux/UNIX | основные дистрибутивы | серверный Linux | BSD | LiveCDs | прочее

# Установка и удаление программ
общие вопросы | каталоги софта | специальные случаи

# Настройка и работа
установка, загрузчики | настройка Linux | консоль | файловые системы | процессы | шеллы, русификация, коммандеры | виртуальные машины, эмуляторы

# X Window и оконные менеджеры
настройка X Window | GNOME | KDE | IceWM и др.

# Работа с текстами
редакторы | офис | шрифты, кодировки и русификация | преобразования текстовых файлов | LaTeX, SGML и др. | словари

# Графика
GIMP | фото | обработка изображений | форматы графических файлов

# Сети, администрирование
общие вопросы | Dialup & PPP | брандмауэры | маршрутизация | работа в Windows-сетях | веб-серверы | Apache | прокси-серверы | сетевая печать | прочее

# Программирование
GCC & GNU make | программирование в UNIX | графические библиотеки | Tcl | Perl | PHP | Java & C# | СУБД | CVS | прочее

# Ядро
# Мультимедиа
# Интернет
# Почта
# Безопасность
# Железо
# Разное

# Linux HowTo (как сделать)
# Книги и руководства
# Материалы на английском языке


MySQL The World's Most Popular Open Source Database # Online shop | Site map |  
CompanyProductsSupport & ConsultingTraining & CertificationDownloadsDocumentation
  BooksArticlesMailing ListsPresentationsOther Sites  
Search the MySQL manual:
MySQL Manual
  • 7 Типы таблиц MySQL
    • 7.5 Таблицы InnoDB
      • 7.5.1 Обзор таблиц InnoDB
      • 7.5.2 Параметры запуска InnoDB
      • 7.5.3 Создание табличной области InnoDB
      • 7.5.4 Создание таблиц InnoDB
      • 7.5.5 Добавление и удаление файлов данных и журналов InnoDB
      • 7.5.6 Создание резервных копий и восстановление баз данных InnoDB
      • 7.5.7 Перенесение базы данных InnoDB на другой компьютер
      • 7.5.8 Транзакционная модель InnoDB
        • 7.5.8.1 Согласованное чтение
        • 7.5.8.2 Чтение с блокировкой
        • 7.5.8.3 Блокировка следующего ключа: устранение проблемы с фантомом
        • 7.5.8.4 Блокировка, осуществляемая различными операторами SQL в InnoDB
        • 7.5.8.5 Обнаружение и откат взаимоблокировки (deadlock)
        • 7.5.8.6 Пример работы согласованного чтения в InnoDB
      • 7.5.9 Рекомендации по увеличению производительности
      • 7.5.10 Реализация многовариантности
      • 7.5.11 Структуры таблиц и индексов
      • 7.5.12 Управление файловым пространством и дисковый ввод/вывод
      • 7.5.13 Обработка ошибок
      • 7.5.14 Ограничения для таблиц InnoDB
      • 7.5.15 Контактная информация для получения данных по InnoDB

Buy this Reference Manual in softcover from Barnes & Noble!

MySQL Reference Manual
Previous / Next / Up / Table of Contents

7.5.8 Транзакционная модель InnoDB

Назначение транзакционной модели InnoDB заключается в том, чтобы совместить лучшие свойства многовариантной базы данных и традиционной двухфазной блокировки. Для таблиц InnoDB осуществляется блокировка на уровне строки и запросы по умолчанию запускаются как целостное считывание без блокировок, подобно тому, как это реализовано в Oracle. Хранение таблицы блокировок InnoDB организовано настолько экономично, что нет необходимости в расширении блокировки: обычно несколько пользователей могут блокировать любую строку или любой набор строк в базе данных, не занимая всю память, доступную для InnoDB.

В таблицах InnoDB все действия пользователей осуществляются при помощи транзакций. Если в MySQL используется режим автоматической фиксации, то для каждого оператора SQL будет создаваться отдельная транзакция. Если режим автоматической фиксации отключен, то мы предполагаем, что у пользователя постоянно имеется открытая транзакция. Если он выполняет оператор SQL COMMIT или ROLLBACK, которые завершают текущую транзакцию, сразу же запускается новая транзакция. Оба упомянутых оператора снимают все блокировки InnoDB, которые были установлены во время выполнения текущей транзакции. Оператор COMMIT означает, что изменения, внесенные во время выполнения текущей транзакции, зафиксированы и становятся видимыми для других пользователей. Оператор ROLLBACK отменяет все изменения, внесенные текущей транзакцией.

Главы

  • 7.5.8.1 Согласованное чтение
  • 7.5.8.2 Чтение с блокировкой
  • 7.5.8.3 Блокировка следующего ключа: устранение проблемы с фантомом
  • 7.5.8.4 Блокировка, осуществляемая различными операторами SQL в InnoDB
  • 7.5.8.5 Обнаружение и откат взаимоблокировки (deadlock)
  • 7.5.8.6 Пример работы согласованного чтения в InnoDB

User Comments

Posted by Daniel Solin on Tuesday January 14 2003, @1:44am[Delete] [Edit]

Both 'SELECT @@global.tx_isolation;' and 'SELECT @@tx_isolation;' return an error on MySQL 3.23.53:

mysql> SELECT @@global.tx_isolation;
ERROR 1193: Unknown system variable 'global.tx_isolation'
mysql> SELECT @@tx_isolation;
ERROR 1193: Unknown system variable 'tx_isolation'

Posted by Lee Ann Mendel on Wednesday February 5 2003, @12:54pm[Delete] [Edit]

mysql> show variables like "%isola%";
+-----------------------+----------------+
| Variable_name | Value |
+-----------------------+----------------+
| transaction_isolation | READ-COMMITTED |
+-----------------------+----------------+
1 row in set (0.00 sec)

Add your own comment.

Top / Previous / Next / Up / Table of Contents
# MySQL.com home | Site map | Contact us | Press | Jobs | Privacy policy | Trademark info | © 1995-2003 MySQL AB. All rights reserved.