MySQL / 15. Выполнение транзакций

Благодаря своей многопоточности, сервер MySQL способен обслуживать множество клиентов одновременно. Исключение конкуренции между пользователями достигается блокировкой соответствующих ресурсов, не позволяющей двум клиентам одновременно модифицировать одни и те же данные. Тем не менее, в процессе выполнения запросов нельзя исключить такой ситуации, когда в последовательность запросов некоторого пользователя «вклинятся» запросы и от других клиентов. Если несколько запросов зависят один от другого, тот факт, что другие клиенты могут изменить данные в промежутке между ними, может создать проблемы. Ошибки выполнения запросов также создают сложности, если операция, состоящая из нескольких запросов, не завершилась полностью. Предположим, у вас есть таблица flight с информацией о расписании полетов, и вы хотите изменить запись о рейсе 578, выбрав нового пилота из списка свободных.
Статьи раздела '15. Выполнение транзакций':
Альтернативы транзакциям
Задача Вам нужно выполнить транзакцию, но ваш сервер MySQL не поддерживает их. Решение Некоторые транзакционные операции можно заменить явной блокировкой таблицы. А в некоторых случаях транзакция вообще не нужна, можно перефо...
Выполнение транзакций в программах
Задача Вы пишете программу, в которой необходимо использовать транзакции. Решение Используйте абстракцию транзакции в API для вашего языка программирования, если такая существует. Если нет, используйте обычный механизм выполн...
Выполнение транзакций средствами SQL
Задача Вам требуется создать ряд запросов, которые должны успешно выполниться или же не выполниться все вместе как единое целое. Решение Настройте режим автофиксации MySQL так, чтобы были разрешены транзакции, включающие неск...
Использование транзакций в программах на Java
Задача Вы хотите выполнить транзакцию в сценарии JDBC. Решение Используйте стандартный механизм поддержки транзакций JDBC. Обсуждение Для выполнения транзакции в Java используйте ваш объект Connection для отключения режим...
Использование транзакций в программах на Perl
Задача Вы хотите выполнить транзакцию в DBI-сценарии. Решение Используйте стандартный механизм поддержки транзакций DBI. Обсуждение Механизм реализации транзакции в DBI базируется на явном управлении режимом автофиксации....
Использование транзакций в программах на PHP
Задача Вы хотите выполнить транзакцию в PHP-сценарии. Решение Запускайте предложения SQL, которые начинают и завершают транзакции. Обсуждение В PHP нет специального механизма транзакций, так что следует непосредственно со...
Использование транзакций в программах на Python
Задача Вы хотите использовать транзакцию в сценарии DB-API. Решение Используйте стандартный механизм поддержки транзакций DB-API. Обсуждение В DB-API имеется абстракция, обеспечивающая контроль обработки транзакций за сче...
Проверка поддержки транзакций
Задача Вы хотите использовать транзакции, но не знаете, поддерживает ли их ваш сервер MySQL. Решение Проверьте версию сервера, чтобы убедиться в том, что она достаточно свежая, и определите, какие типы таблиц поддерживаются. ...

Страницы: 1