数据库MySQL八股

124 阅读2分钟

什么是事务?事务的四大特性是什么?

事务

  • 事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元。

事务四大特性-ACID

  • 原子性(Atomicity): 要么全部提交成功,要么 全部失败回滚
  • 一致性(Consistency): 数据库总是从一个一致性的状态转换到另一个一致性的状态。
  • 隔离性(Isolation): 一个事务所做的修改操作在提交事务之前,对于其他事务来说是不可见的。
  • 持久性(Durability): 一旦事务提交,则会永久保存到数据库。

事务隔离级别有哪些?MySQL的默认隔离级别是?

SQL 标准定义了四个隔离级别:

  • READ-UNCOMMITTED(读取未提交): 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读、幻读或不可重复读。

  • READ-COMMITTED(读取已提交): 允许读取并发事务已经提交的数据,可以阻止脏读,但是幻读或不可重复读仍有可能发生。

  • REPEATABLE-READ(可重复读): 对同一字段的多次读取结果都是一致的,除非数据是被本身事务自己所修改,可以阻止脏读和不可重复读,但幻读仍有可能发生。

  • SERIALIZABLE(可串行化): 最高的隔离级别,完全服从ACID的隔离级别。所有的事务依次逐个执行,这样事务之间就完全不可能产生干扰,也就是说,该级别可以防止脏读、不可重复读以及幻读。 image.png

MySQL InnoDB 存储引擎的
默认支持的隔离级别是 REPEATABLE-READ(可重读)
可以通过SELECT @@tx_isolation;  命令来查看。

数据库索引的分类,类型,索引的优缺点,索引的优化