MySQL-事务面试题

  1. 请描述事务的四大特征 :
    <1>. 原子性: 事务是一个整体 , 不可分割 , 要么同时成功, 要么同时失败.
    <2>. 持久性: 当事务提交或回滚后, 数据库会持久化的保存数据.
    <3>. 隔离性: 多个事务之间, 隔离开, 相互独立.
    <4>. 一致性: 事务操作的前后 , 数据总量不变 (例如: 转账时: 孟亮给帅兵转账是 一个事务, 转账完毕后. 两人余额的和不变.)

  2. 请描述什么是脏读, 幻读, 不可重复读 ?

    • 脏读: 读取到了一个事务 未提交的数据.
    • 不可重复读: 一个事务中, 两次连续的读取 ,结果不一致(中间被其它事务更改了).
    • 幻读: 一个事务A在执行DML语句时, 另一个事务B也在执行DML语句 , B修改了A修改过的 数据, 导致A在查询时就像发生了幻觉一样(A更改的内容A看不到了.)
  3. 请描述事务的隔离级别
    //三种级别锁: 页级,表级,行级(共享锁,排它锁).

    1. 读未提交 : read uncommitted; (可能产生:脏读, 不可重复读, 幻读)
    2. 读已提交 : read committed; (可能产生: 不可重复度, 幻读)
    3. 可重复读 : repeatable read;(mysql默认值) (可能产生: 幻读)
    4. 串行化 : serializable;
  • 查看数据库当前的隔离级别: select @@tx_isolation; (了解)
  • 数据库设置隔离级别: set global transaction isolation level 级别字符串; (了解)
原文地址:https://www.cnblogs.com/baicia/p/14320505.html