Mysql数据库的隔离方式;数据库开启事务;悲观锁、乐观锁的使用

四种隔离模式:  read-uncommitted 、read-committed、repeatable-read、serializerable ,四种模式在   脏读、不可重复读、幻读 上有不同的表现。 

查看数据库的隔离级别:  select  @@global.tx_isolation;

修改数据库的隔离级别: set global transaction isolation level read committed; 

或者在mysql的my.ini配置文件的   [mysqld] 下添加如下全局配置  :transaction-isolation =  READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE  ,任选一个即可。

改完均要重启数据库才能生效

事务:访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。

在Django中开启事务的方式有两种:

from django.db import transaction  # 先导入事务transaction,

@transaction.atomic  # 搞个装饰器
def post(self,request):
        sid = transaction.savepoint()  # 开启事务
        ....一系列的操作...
        transaction.savepoint_rollback(sid)  # 回滚
    
        transaction.savepoint_commit(sid)  # 提交
from django.db import transaction  # 导入事务transaction,

with transaction.atomic():  # 事务的with语句用法
    sid = transaction.savepoint()  # 开启事务    
    try:
        transaction.savepoint_commit(sid)  # 提交
    except:
        transaction.savepoint_rollback(sid)  # 回滚    
原文地址:https://www.cnblogs.com/csic716/p/12521481.html