一、Mysql架构与历史
1、架构图
2、锁
表锁
表锁是Mysql中最基本的锁策略,开销最小。
行级锁
行锁可以最大程度地支持并发处理。行级锁只在存储引擎层实现,而Mysql服务器没有实现。服务器层完全不了解存储引擎层的锁实现。
3、事务
事务内的语句,要么全部执行成功,要么全部执行失败。一个运行 良好的事务系统,必须具备ACID特性。
ACID分别表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)。
隔离级别 | 脏读 | 不可重复读 | 幻读 |
---|---|---|---|
未提交读(Read uncommitted) | 可能 | 可能 | 可能 |
已提交读(Read committed) | 不可能 | 可能 | 可能 |
可重复读(Repeatable read) | 不可能 | 不可能 | 可能 |
可串行化(Serializable) | 不可能 | 不可能 | 不可能 |
死锁
死锁是指两个或者多个事务在同一资源上相互占用,并请求锁定对方占用的资源,从而导致恶性循环的现象。
Mysql中的事务
Mysql默认采用自动提交(AUTOCOMMIT)模式。也就是说,如果不是显式地开始一个事务,则每个查询都被当作一个事务执行提交操作。show variables like 'AUTOCOMMIT'; 可以用来查看该开关。
1