mysqlで複数テーブルを齟齬なく更新したいので、トランザクションを実装したいです。
それにあたって3つ質問よろしいでしょうか
###質問その1
次の言葉の理解はあっていますか?
「トランザクション」=「テーブルロック」
「トランザクションを発行する」=「テーブルをロックする」
###質問その2
更新したいテーブルは posts_table と count_table の2つがあります。
posts_table 更新のためにAトランザクションを発行し、次に count_table 更新を普通にすると、count_table は更新がされていませんでした。
この解決策は、
①posts_table 更新のためのAトランザクションが終わってから、count_table 更新のためのBトランザクションを発行しなければならない
②Xトランザクションとして、posts_table と count_table の2つをまとめて更新しなければならない
③そもそもトランザクションを発行しないままで posts_table と count_ttable を更新しなければならない
といういずれかである。という理解であっていますか?
###質問その3
上記①②はどちらがいいのでしょうか?
つまりトランザクション処理は、複数走らせるべきなのでしょうか?一つにまとめるべきなのでしょうか?
■複数走らせる①の場合
Aトランザクション( posts_table 更新 )
↓
Bトランザクション( count_table 更新 )
↓
Cトランザクション( posts_table 取得 )
■一つにまとめる場合②の場合
Xトランザクション( posts_table 更新、count_table 更新、posts_table 取得 )