簡単に言うと、テーブルの種類によって異なります。デフォルトのMyISAMを使用している場合、実際にはトランザクションがないため、パフォーマンスに影響はありません。
しかし、とにかくそれらを使用する必要があります。トランザクションがなければ、作業の境界はありません。InnoDBまたはPostgreSQLのような実際のデータベースにアップグレードする場合は、とにかくこれらのトランザクションをサービスメソッドに追加する必要があるため、コストをかけずに今すぐ習慣にすることもできます。
その上、あなたはすでにトランザクションストアを使用しているはずです。現在、サービスメソッドが失敗した場合、どのようにクリーンアップしますか?データベースに情報を書き込んだ後、サービスメソッドが例外をスローした場合、その不完全または誤った情報をどのようにクリーンアップしますか?トランザクションを使用している場合は、そうする必要はありません。データベースはロールバックされたデータを破棄します。または、メソッドの途中で別のリクエストが届き、半分書き込まれたデータが見つかった場合はどうしますか?まだそこにない残りの半分を探しに行くとき、それは爆発するだろうか?トランザクションデータストアがこれを処理します。トランザクションは互いに分離されているため、部分的に書き込まれたトランザクションを他の人が見ることはできません。
データベースのすべてと同様に、唯一の決定的な答えは、現実的なデータと現実的な負荷を使用したテストから得られます。データベースに関しては、データが大きい場合とそうでない場合で非常に異なるコードパスがアクティブ化されるため、疑わしいことに関係なく、常にこれを行うことをお勧めします。しかし、InnoDBを使用してもトランザクションを使用するコストはそれほど大きくないと強く思います。結局のところ、これらのシステムは、トランザクションのパフォーマンスに依存する大小の組織によって、毎日、絶えず頻繁に使用されています。MVCCはほとんどオーバーヘッドを追加しません。メリットは膨大で、コストは低くなります。それらを使用してください。