Why use SELECT FOR UPDATE?
SELECT ... FOR UPDATE
will lock the record with a write (exclusive) lock until the transaction is completed (committed or rolled back).
To select a record and ensure that it's not modified until you update it, you can start a transaction, select the record using SELECT ... FOR UPDATE
, do some quick processing, update the record, then commit (or roll back) the transaction.
If you use SELECT ... FOR UPDATE
outside of a transaction (autocommit ON), then the lock will still be immediately released, so be sure to use a transaction to retain the lock.
For performance, do not keep transactions open for very long, so the update should be done immediately.