undo:组成版本链。记录某条记录修改前是什么样的。consistency,atom
Redolog:记录修改操作。durability
Binlog:记录提交后的修改sql语句
readview:每次select都会创建一个,按照t r x_id查找记录
读未提交:拿undo日志的链表头。脏读不可重复度幻读
读提交:每次select都看最新的readview。不可重复读幻读
可重复读:每次select都用第一次select出的readview。幻读
串行化:拿undo日志的链表头。给最新快照+读锁
解决幻读:快照读(mvcc),当前读(记录锁+间隙锁)
drop:删除表数据和结构(所有内容),不可回滚
truncate:删除表数据,不可回滚
delete:可回滚
索引:
单值索引
唯一索引
复合索引
主键索引
前缀索引
优点:提速:Select
缺陷:更新表慢
表锁:共享读锁,独占写(排它)锁(三种引擎都支持)
元数据锁:不允许其他事务操作
意向锁:意向共享锁,意向排它锁。减少表锁检查
记录锁:锁一行/一条数据。不给update/delete。rc/rr
间隙锁:锁记录间隙。不给insert。rr
临键锁:记录+间隙。rr
mysiam:innodb
索引 非聚簇:聚簇
锁 表锁:行锁