首页 > 代码库 > MySQL:事务

MySQL:事务

事务: 将业务处理的过程当做一个最小的业务处理单元来处理

  比如:  朋友转账

  事务有四大特性:

    原子性:具有功能的最小单元,是密不可分;

    永久性:事务处理的正确数据,是永久存储在数据库中,不能返回;

    隔离性:一个事务在处理时,另外的事物要等待;

    一致性:使用事务修改数据时,数据修改前和数据修改后,数据应该是平衡的;

  事务什么存储引擎中使用:

    默认存储引擎Myisam:  不支持事务

    Innodb:支持事务,

事务创建

  开启事务:BEGIN/START TRANSACTION;

  建立锁机制

  提交事务:commit;  事务成功

  数据回滚:rollback  事务失败

事务锁机制

  共享锁:(带有外部锁的玻璃大门) - 读锁

    共享锁上可以创建共享锁,但是不能创建独占锁,创建共享锁的事务,所有的事务都可以读取数据,但是都不能操作数据

    select 语句 lock in share mode.

    select * from student [where sid=1] lock in share mode;

    根据锁住的内容划分

      行锁: 建立的某个锁只对某条数据有效  innodb  行锁;

      页锁: 建立锁对某些同一页中的数据有效;

      表锁: 建立锁是锁表的;- 锁表(mysql5之前,5之后出现了事务)

        lock tables 表名 write/read;

          具体的操作语句

        unlock tables;

  独占锁:(带有暗锁的黑皮大门) - 写锁

    独占锁上不能创建任何的锁,创建独占锁的事务,可以添加,删除,修改,查询数据等,但是其他事务只能读取数据,并且读取到的数据是老数据。

    select 语句 for update

 

MySQL:事务