并发操作带来的数据不一致性问题,挺容易被忽略的,但一旦出问题,真的是“数据全乱套”。丢失修改、不可重复读、脏读这几个坑,数据库初学者和老手都踩过。
数据库系统概论课件里的比较清晰,思路也顺,适合用来扫盲或快速复习一遍。
你可以理解为:两个用户同时操作数据库,一个改了还没提交,另一个就读了旧数据,结果一提交,之前那次读的数据就不对了。不可重复读就是这种场景,别说,挺常见的。
建议你看完课件后,再翻翻下面这些文章:
数据库并发控制中的三种数据不一致性,这个就挺基础,帮你理清楚三个核心问题。
封锁机制详解,嗯,这个就讲得稍微细一点,是对事务隔离级别有点迷糊的,可以多看几遍。
另外像 CorfuDB 这种专门做一致性平台的东西,也值得研究研究,跟传统的并发控制机制不太一样,适合想深挖的同学。
如果你平时做系统设计、或者碰过并发数据出错的场景,真心建议看看这些内容,顺带用课程资料搭配几个实战案例,理解会快多。