Nemo

Nemo 关注TA

路漫漫其修远兮,吾将上下而求索。

Nemo

Nemo

关注TA

路漫漫其修远兮,吾将上下而求索。

  •  普罗旺斯
  • 负责帅就完事了
  • 写了1,496,113字

该文章投稿至Nemo社区   Java  板块 复制链接


事务设计指南

发布于 2017/11/07 14:19 2,717浏览 0回复 541

1,保持事务短小

2,尽量避免事务中rollback

3,尽量避免savepoint

4,默认情况下,依赖于悲观锁

5,为吞吐量要求苛刻的事务考虑乐观锁

6,显示声明打开事务

7,锁的行越少越好,锁的时间越短越好

START TRANSACTION:开始事务,autocommit设为0,如果已经有一个事务在运行,则会触发一个隐藏的COMMIT

COMMIT:提交事务,保存更改,释放锁

ROLLBACK:回滚本事务对数据库的所有更改,然后结束事务,释放锁

SAVEPOINT savepoint_name:创建一个savepoint识别符来ROLLBACK TO SAVEPOINT

ROLLBACK TO SAVEPOINT savepoint_name:回滚到从savepoint_name开始对数据库的所有更改,这样就允许回滚事务中的一部分,保证更改的一个子集被提交

SET TRANSACTION:允许设置事务的隔离级别

LOCK TABLES:允许显式的锁住一个或多个table,会隐式的关闭当前打开的事务,建议在执行LOCK TABLES语句之前显式的commit或rollback。

我们一般所以一般在事务代码里不会使用LOCK TABLES

本文标签
 {{tag}}
点了个评