事务是逻辑上的一组操作,要么都执行,要么都不执行。
转账是最经典也常被拿出来说的例子。假如小明要给小红转账1000元,这个操作会涉及到两个关键:将小明的余额减少1000元,将小红的余额增加1000元。但万一在这两个操作之间,突然出现错误:比如银行系统崩溃,导致小明余额减少,而小红的余额没有增加,这样就不对了。
所以,事务就是用来保证这两个关键操作要么都成功,要么都失败。
事物的特性
在典型的应用程序中,多个事务并发执行,经常会操作相同的数据,来完成各自的任务(多个用户对同一数据进行操作),不过这可能会导致以下的问题:
不可重复度和幻读区别:
不可重复读的重点,是修改,比如多次读取一条记录,发现其中某些列的值被修改了; 幻读的重点,在于新增或者删除,比如多次读取一条记录,发现记录增多或减少了。