明辉站/应用软件/内容

数据库中的事务与并发问题的案例讲解

应用软件2023-08-23 阅读
[摘要]数据库中的事务和并发问题探讨引子最近有同事写了段代码,负责创建订单的逻辑,代码审查时发现可能会有并发的问题。同事并不认同,他认为他的逻辑是写在存储过程中的,应该没有问题。代码的逻辑大概是(伪代码):begin transactionif 查询到客户存在进行中的订单rollback transact...
数据库中的事务和并发问题探讨

引子

最近有同事写了段代码,负责创建订单的逻辑,代码审查时发现可能会有并发的问题。同事并不认同,他认为他的逻辑是写在存储过程中的,应该没有问题。

代码的逻辑大概是(伪代码):

begin transaction

if 查询到客户存在进行中的订单
 rollback transaction

if 查询到设备存在进行中的订单
 rollback transaction

插入订单

commit transaction

下面针对这个逻辑进行分析,为什么这个事务会出现并发问题。

事务概述

首先,提出两个问题,然后带着问题讨论事务相关的知识点,最后来解决这两个问题并回答前文的问题。

第一个问题,事务是否可以并发?

第二个问题,数据库是怎么隔离事务的?

事务的表现特性

数据库中执行事务涉及到很多方面,包括如何处理临界资源,如何加锁解锁等等。但是无论事务如何执行,都需要保证以下几个特性:

以上就是数据库中的事务和并发问题的实例讲解的详细内容,更多请关注php中文网其它相关文章!


学习教程快速掌握从入门到精通的SQL知识。

……

相关阅读