以下隔离的概念:ANSI SQL中定义的4个隔离级实际上是用对锁的操作来定义的:
脏读: 读数据时不加锁。
提交读: 在读数据之前加一个读锁,读完之后释放锁。
可重复读: 在读数据之前加一个读锁,读完之后不释放锁,直到事务rollback或者commit后才释放锁。
串行化读: 在读数据之前在读取的条件上加锁(称为条件锁),读完之后不释放锁,直到事务rollback或者commit后才释放锁。
脏读、幻读及不可重复读详解:
1, 脏读
一个事务读到另一个事务尚未提交的修改,就是脏读。这里所谓的修改,除了Update操作,不要忘了,还包括Insert和Delete操作。
脏读的后果:如果后一个事务回滚,那么它所做的修改,统统都会被撤销。前一个事务读到的数据,就是垃圾数据。
举个例子:预订房间。
有一张Reservation表,往表中插入一条记录,来订购一个房间。
事务1:在Reservation表中插入一条记录,用于预订99号房间。
事务2:查询,尚未预定的房间列表,因为99号房间,已经被事务1预订。所以不在列表中。
事务1:信用卡付款。由于付款失败,导致整个事务回滚。
所以插入到Reservation 表中的记录并不置为持久(即它将被删除)。
现在99号房间则为可用。
所以,事务2所用的是一个无效的房间列表,因为99号房间,已经可用。如果它是最后一个没有被预定的房间,那么这将是一个严重的失误。
注:脏读的后果很严重。
分享到:
相关推荐
5. **设置编译选项**:通过 `set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")` 等命令可以添加或修改编译器选项。 6. **添加测试**:`enable_testing()` 开启测试支持,`add_test(NAME test_cmaketest ...
taobaoassistant_test_11_11_08_5232.exe
STM32实例程序 11.TIMx_test_通用定时器STM32实例程序 11.TIMx_test_通用定时器STM32实例程序 11.TIMx_test_通用定时器STM32实例程序 11.TIMx_test_通用定时器STM32实例程序 11.TIMx_test_通用定时器STM32实例程序 ...
标题中的“11_5_2015_low current OCV test_SP20-1_matlab_”指的是一项在2015年11月5日进行的低电流开路电压(OCV)测试,使用了SP20-1电池,并且数据处理或分析采用了MATLAB软件。开路电压测试是电池研究中一个关键...
test_11_07.exe
《深入解析S3C2410:基于“test2410_r11”的实践探索》 在嵌入式系统领域,S3C2410是一款经典的ARM9处理器,由三星公司开发,广泛应用于各种便携式设备、工业控制和消费电子产品中。本文将围绕"test2410_r11"这一...
EMVCo® Type Approval和Contactless Terminal Level 1 PCD Digital Test Bench & Test Cases Version 2.3.1a文档是一个包含了EMVCo关于NFC技术的级别一认证测试的详细计划。这份文档在2013年11月发布,提供了关于...
EMV_CL_PCD_Digital_Test_Bench_Test_Cases_是一份非常重要的文档,它为EMV Contactless Level 1中的Proximity Card Detection (PCD)设备提供了详尽的测试指导。通过遵循这些测试案例和使用指定的测试平台,可以有效...
标题中的"Test Plan_2022-10-31 11_00_46.zip"表明这是一个测试计划文件,日期为2022年10月31日,时间是11点00分46秒。通常,这种命名方式用于记录文件创建或更新的时间点,便于管理和追踪版本。在IT行业中,特别是...
标题“11_hdmi_out_test_HDMI_verilog_”暗示了这是一个关于通过Verilog实现HDMI图像显示的项目,而描述则提到了使用ADV7511编码芯片进行信号转换。 首先,让我们了解HDMI。HDMI是一种数字接口,用于在各种电子设备...
11_ddr3_test 12_flash_test 13_usb_test 14_ethernet_test 15_audio_test 16_sd_test 17_sd_audio 18_vga_test 19_vga_char 20_sd_ddr_vga 21_lcd_test 22_flash_ddr_lcd 23_ov7670_vga 24_ov7670_lcd 25_ov5640_...
标题 "test_for_test-2019.11.7.tar.gz" 提示我们这是一个压缩文件,使用了tar和gzip两种工具进行打包和压缩。在IT领域,这种格式广泛用于在Unix/Linux环境中存储和传输数据,因为它能有效地减小文件大小。 首先,...
1. **变量和数据类型**:MATLAB 支持多种数据类型,如标量(单个数值)、向量、矩阵、数组和结构体等。变量无需预先声明类型,但有默认类型。 2. **运算符**:MATLAB 提供算术(+,-,*,/)、关系(==,<,>)和...
1. **基本语法**:包括变量定义、数据类型(如int、char、float等)、运算符、流程控制语句(如if-else、switch-case、for、while等)。 2. **函数**:C语言中的功能模块化,用于组织代码,实现特定任务。 3. **指针...
标题中的“jpeg-test.rar”是一个压缩包文件,其主要关注点在于ARM11处理器上的JPEG编解码技术。ARM11是英国ARM公司设计的一种32位微处理器内核,常用于嵌入式系统,例如移动设备、数字电视等。在这样的硬件平台上...
1. **802.11n标准**:802.11n是IEEE定义的一种无线局域网(WLAN)标准,于2009年正式发布。与之前的802.11a/b/g标准相比,802.11n引入了MIMO(多输入多输出)技术,允许使用多个天线进行数据传输,从而实现更高的...
标题中的“test1_pt10051单片机_51单片机pt100_SHT11+PT100_”表明这是一个关于单片机编程的项目,具体涉及51系列单片机,并且实现了对温度传感器PT100和湿度传感器SHT11的数据采集与处理。51单片机是微控制器领域...
eg:{"msg":"","code":0,"data":"/opt/saasUpload/HeadImage/sxn002/2019_12_17_14_44_15_015-13f1f4fb-5446-4199-9e4d-caae89b8964a-11.PNG"} 方式二: 基于 fileUpload(Apache Commons FileUpload)实现文件上传 ...
文档中的“Contactless Terminal Level 1 PCD Analogue Test Bench and Test Case Requirements Version 2.3.1a November 2013”提供了一个版本号和发布日期,表明这是特定版本的测试案例要求,且这些要求是在2013年...