Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Por que usar SELECT FOR UPDATE?


SELECT ... FOR UPDATE bloqueará o registro com um bloqueio de gravação (exclusivo) até que a transação seja concluída (confirmada ou revertida).

Para selecionar um registro e garantir que ele não seja modificado até que você o atualize, você pode iniciar uma transação, selecionar o registro usando SELECT ... FOR UPDATE , faça algum processamento rápido, atualize o registro e confirme (ou reverta) a transação.

Se você usar SELECT ... FOR UPDATE fora de uma transação (autocommit ON), o bloqueio ainda será liberado imediatamente, portanto, certifique-se de usar uma transação para manter o bloqueio.

Para desempenho, não mantenha transações abertas por muito tempo, então a atualização deve ser feita imediatamente.