mysql中事务

事务

  1. 存储引擎
    数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。Mysql的核心就是存储引擎。
    InnoDB是事务型数据库的首选,执行安全性数据库,行锁定和外键。mysql5.5之后默认使用。
    MyISAM插入速度和查询效率较高,但不支持事务。
    MEMORY将表中的数据存储在内存中,速度较快。

  2. 事务概念
    一组dml操作作为最小原子单位,要么同时成功,要么同时失败。

  3. 事务四个特性(ACID)
    原子性:一组操作不可分割,必须全部成功或者失败。
    一致性:数据及其结构,约束等信息,在事务执行前后保持一致。
    隔离性:并发事务之间互相不干扰。
    持久性:事务执行完成,数据将持久化到数据库。

  4. 并发事务的存在问题
    a) 脏读:一个事务读取到另一个事务未提交的数据
    b) 不可重复读:一个事务在查询范围内,由另一个事务修改并进行事务提交,导致该事务在多次查询时出现数据不一致。
    c) 幻读:一个事务在查询范围内,由另一个事务添加或者删除记录并进行事务提交,导致该事务产生”幻行”。

  5. 事务的隔离级别
    a) 读未提交:最低(最快) 不常用
    b) 读已提交:能够解决脏读问题。
    c) 可重复读:能够解决脏读,不可重复读问题。(mysql)
    d) 串行化:能够解决脏读,不可重复读,幻读问题。
    Mysql支持四种隔离级别。
    Oracle支持读已提交以及串行化,默认是读已提交。

猜你喜欢

转载自blog.csdn.net/zwmonk/article/details/105458718