要想写好“增删改查”,你必须知道的MySQL InnoDB相关知识
要想写好“增删改查”,你必须知道的MySQL InnoDB相关知识 MySQL InnoDB 锁的类型 共享锁(SLock) 排他锁(XLock) 读的类型 一致性非锁定读(快照读) 一致性锁定读(当前读) 事务的隔离级别 READ UNCOMMITTED READ COMMITTED REPEATABLE READ SERIALIZABLE 事务的并发问题 脏读 不可重复读 丢失更新 MySQL InnoDB MySQL InnoDB是最常用的MySQL数据库引擎,作为一个后端程序员,必须对它有所了解。这篇博客的相关内容是参考《MySQL技术内幕 InnoDB存储引擎》第2版 锁的类型 共享锁(SLock) 共享锁就是多个事务对于同一数据可以共享一把锁,都能访问到数据,但是只能读不能修改。SQL语句:SELECT … LOCK IN SHARE MODE 排他锁(XLock) 允许事务删除或更新一行数据。排他锁就是不能与其他锁并存,如一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的锁,包括共享锁和排他锁。获取排他锁的事务是可以对一行数据读取和修改。SQL语句:SELECT FOR UPDATE 读的类型 一致性非锁定读(快照读) 如果读取的行正在执行delete或update操作,这时读取操作不会因此去等待行上的锁释放,而是去读取一个快照数据