ACID
ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性)、一致性(consistency)、隔离性(isolation,又称独立性)、持久性(durability)。
原子性:要么全部成功 要么全部失败
一致性:
数据符合约束,业务 或 程序的约束(唯一索引)
隔离性:
事务提交前,其他事务不可见
持久性:
一旦提交永久保存在数据库中
4个隔离级别:
read uncommit 读未提交,读到其他事务未提交的数据
read commit 读已提交,两次读取结果不一致,叫不可重复读
repeatable read 可重复读 mysql 默认级别,每次读取结果都一样,但是可能生幻读。
serializable 串行:
MVCC:
READ VIEW 针对select
幻读:新数据会多出来
UNDO LOG 原子性
redo log宕机 恢复
redolog刷盘会在系统空闲进行
binlog dump thread
聚簇索引:数据和主键存储到一起