事务小叙

来源:互联网 发布:成本核算面试知乎 编辑:程序博客网 时间:2024/06/10 01:47

考虑这样一个问题:通常的web管理系统中多人可用同一个用户登录系统并操作数据,这种做法会不会导致数据混乱?

上述问题实质上就是并发情况下事务控制问题,那么在这种多线程情况下数据库该如何控制对数据的事务呢?

大部分数据库事务遵循ACID原则即:原子性、一致性、隔离性、持久性,会保证独立请求时数据库数据在事务控制下,否则会发生什么?“

mysql数据库及其他关系数据库中都存在隔离级别的概念,如read uncommited :未提交读取,这种情况基本上不会用到|read commited :提交完读取 一般默认都是如此|repeatable read:重复读,可去除重复读|serializable:序列化;

因为数据库默认的都是read commited即提交读取数据,当在多线程情况下会有可能导致同一事务中存在重复读且数据不一致情况。所以之前的第一个问题就有了答案,当有较多的人同时使用同一个登录用户可能会造成查询数据不一致的情况。

0 0