数据库并发(Database Concurrency),简单来说,就是多个用户或程序在同一时间段内,同时访问和操作同一个数据库中的数据的现象。
下面从几个层面给你讲清楚:
在实际系统中,数据库通常不是只给一个人用,例如:
这些“同时发生”的读写操作,就是并发。
如果数据库不对并发做控制,可能会出现以下问题:
一个事务读到了另一个未提交事务的数据。
如果后者回滚,读到的数据就是“脏的”。
同一事务内,两次读同一数据,结果不一样(被别人改了)。
同一查询条件,两次查出来的记录数不同(别人插入/删除了数据)。
两个事务同时修改同一数据,后提交的把先提交的覆盖掉了。
数据库通常通过以下机制来控制并发:
保证一组操作要么全部成功,要么全部失败。
控制并发时的“可见程度”,常见有:
隔离级别越高,越安全,但性能越低。
如 MySQL InnoDB,通过版本快照实现“读不加锁、读写不冲突”。
数据库并发 = 多个人同时用数据库
并发控制 = 让这些人用得不乱、不丢数据、不出错
如果你愿意,我也可以用“抢票”“银行转账”这种生活例子再帮你细化讲一遍。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。