Блокирует ли экземпляр MySQL с InnoDB строки, когда я запускаю транзакцию в Laravel?

Я пытаюсь внедрить кредитную систему в приложении, используя Laravel 4.2. Я планирую хранить кредит пользователя в таблице. Поскольку я хочу, чтобы пользовательский кредит был свободен от условий гонки, я исследовал Интернет для правильной реализации. В некоторых ответах говорилось, что если бы я использовал транзакции Laravel + экземпляр MySQL с InnoDB, условий гонки не было бы. В некоторых ответах мне предлагалось использовать lockForUpdate, но я боюсь, что неправильное использование может привести к тупику.

Как мне это реализовать? Я в безопасности, если я просто использую транзакции?

0

Решение

Я просмотрел исходный код и обнаружил, что транзакции Laravel 4.2 основаны на транзакциях PDO (например, PDO :: beginTransaction). Использование транзакций PDO с MySQL имеет этот
такое поведение. Поскольку правила ACID соблюдаются, я предполагаю, что я в безопасности для своего варианта использования.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]