只有一个用户能写入
表锁在服务器层实现, 行锁在存储引擎层实现
事务
数据库事务具有, 原子性, 一致性, 隔离性和持久性, 简称 ACID
使用事务会增加额外的开销
隔离级别
READ UNCOMMITTED..., 也叫不可重复读
REPEATEABLE READ 可重复读, A 事务本身对数据的修改对 A 事务后边的语句也不起作用, 所有的 SQL 操作的数据都来自数据库, 这是 MySQL 默认的事务隔离级别...Innodb 的 MVCC (多版本并发控制) 的实现方式 \
只工作在 REPEATEABLE 和 READ COMMITED 两种隔离级别下
为每一行记录增加两个字段, 一个保存行的创建时间, 另一个保存行的过期..., update 更新创建版本号为当前系统版本号, 更新删除版本号为之前的创建版本号
存储引擎
InnoDB
支持行级锁
支持事务
全表使用 B+ tree 实现
数据只存在叶子节点上
MyISAM
不支持行级锁..., 只支持表锁
数据文件和索引文件分开
不支持事务
可以通过压缩表技术提高性能
索引使用 B+ tree 实现