私のSQLite
ベースのアプリケーションは現在、ロールバックを可能にするためとパフォーマンスを向上させるための両方でトランザクションを使用しています。すべてのトランザクションをセーブポイントに置き換えることを検討しています。その理由は、アプリケーションがマルチスレッドであり(はい、sqlite
スレッドセーフになるように構成されている)、場合によっては、トランザクションが2つのスレッドによって同時に(同じデータベース上で)開始される可能性があるためです。
- それをしない理由はありますか?
- 知っておく必要のある落とし穴はありますか?
BEGIN
、、をCOMMIT
、、に置き換えるだけですか?ROLLBACK
SAVEPOINT xyz
RELEASE SAVEPOINT xyz
ROLLBACK TO SAVEPOINT xyz