書き込みはアトミックですが、増分には読み取りも必要です。したがって、問題は次のとおりです。読み取りが安全であるかどうか、言い換えると、インクリメントを実行している別のスレッドが同じ値でインクリメントされないことを確認しますか?疑問があります。これを行う100%正しい方法は次のようになります。
-- begin transaction here
select counter from myCounters where counter_id = 1 FOR UPDATE;
-- now the row is locked and nobody can read or modify its values
update myCounters set counter = ? where id = 1;
-- set ? to counter + 1 programmatically
commit; -- and unlock...