前言 这是微专业参加单元测试后的试题 及答案整理,分享出来,供大家参考,所有标红的为答案。
正文 1、(单选)有一个事务在session a被执行,
begin;
update tab_a set x = 1 where y = 3 ;
update tab_a set x = 2 where y = 2 ;
update tab_a set x = 3 where y = 3 ;
commit;下面关于这个事务的描述正确的是:
A.事务的隔离性决定了其他session在这个事务执行过程中看不到tab_a表中上y = 3的记录x = 1的状态. B.事务的原子性决定了这三个dml语句要么都完成,要么一个都不做. C.事务的一致性决定了这三个dml是在同一时刻执行的. D.事务的持久化属性决定了事务中每一句update完成后都将被刷新到磁盘上永远不会丢失. 2、(单选)关于InnoDB存储引擎事务持久化属性,下面描述正确的是:
A.数据持久化方式实现中,直接实时刷新到磁盘数据文件的方式比事务日志持久化方式更安全. B.持久化特性能在数据库正常关闭后保证数据不会丢失,而数据库实例异常停止却会出现数据丢失. C.使用事务日志持久化实现主要是性能方面的考虑. D.刷新到磁盘的数据变化算持久化完成. 3、(单选)在read committed隔离级别下,有两个session对数据库InnoDB表tab操作进行的时间轴,假设最初表中有且只有一行a=2的记录,并且都没有其他人在操作数据库,下面描述中正确的是
update tab set a = 1 where a = 2 ;
select * from tab where a = 1 ;
select * from tab where a = 1 ;
update tab set a = 2 where a = 1 ;
select * from tab where a = 1 ;
A.session B没有执行DML语句,因此begin和commit操作没有实际意义. B.session B第一个和第三个语句select结果相同. C.session B后两个select语句结果相同. D.session B前两个select语句结果相同.
4、(单选)下面不属于事务基本特性的是:
5、(多选)关于InnoDB引擎事务的隔离级别下列描述错误的是
A.InnoDB引擎默认的隔离级别是Repeatable read. B. MySQL 修改InnoDB存储引擎隔离级别需要重启服务. C.InnoDB引擎的默认隔离级别不允许幻读的发生,因此符合标准隔离级别定义. D.InnoDB存储引擎可以为不同的表设置不同的隔离级别.
6、(多选)关于事务的回滚,下面的描述正确的是:
A.事务的回滚也是实现事务一致性的重要功能. B.事务的回滚是实现事务原子性的重要功能. C.InnoDB存储引擎靠redo日志实现回滚功能. D.事务一旦回滚成功,该事务的数据变化就无法再恢复回来,除非重新执行.
7、(多选)关于数据库事务,下面描述错误的是:
A.使用InnoDB引擎的数据库,如果开启了自动提交,那么就无法手动执行begin和commit操作. B.数据库事务隔离性要求决定了数据库无法同时执行两个事务. C.原子性是保证a向b转账过程中不会因为数据库异常导致更新丢失的关键. D.InnoDB存储靠回滚段实现事务回滚的功能.
8、(多选)在InnoDB默认隔离级别下,有两个session对数据库InnoDB表tab操作进行的时间轴,假设最初表中至少有一行a=2的记录,并且都没有其他人在操作数据库,下面描述中正确的是
session A session B time1 begin ; time2 update tab set a = 1 where a = 2 ; time3 select * from tab where a = 2 ; select * from tab where a = 2 ; time4 commit ; time5 select * from tab where a = 2 ; select * from tab where a = 2 ;
A.session A的两个select语句将返回相同的结果. B.session A的第二个select语句和session B的第二个select语句将返回相同的结果. C.session A的第一个select语句和session B的第一个select语句将返回相同的结果. D.session B的两个select语句将返回相同的结果.
9、(多选)下面关于回滚段的描述,正确的是
A.InnoDB存储引擎异常恢复过程中需要用到回滚段. B.回滚段也帮助实现事务的隔离性. C.InnoDB存储引擎中事务回滚不会实际存放任何数据,只是存放指向数据的指针. D.回滚段用于存放更新以后但是尚未提交的数据.
10、(多选)下面关于 MySQL 数据库事务的说法错误的是:
A.支持事务的引擎,如果开启了事务,在执行rollback后,可以通过执行commit找回被回滚的修改. B.支持事务的引擎,如果开启了事务,在执行commit后,该事务无法再被回滚. C.关闭自动提交,支持事务的引擎即使不执行begin,也会自动开启事务,也就是说不执行commit事务的改变无法被别人看见. D.支持事务的引擎无法设置为启用自动提交.