MySQL事务与存储引擎-数据库事务单元测试

前言

这是微专业参加单元测试后的试题及答案整理,分享出来,供大家参考,所有标红的为答案。

正文

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的记录,并且都没有其他人在操作数据库,下面描述中正确的是 

session A

session B

time1

begin ;

time2

update tab set a = 1 where a = 2 ;

begin;

time3

select * from tab where a = 1 ;

time4

commit ;

time5

select * from tab where a = 1 ;

time6

begin ;

time7

update tab set a = 2 where a = 1 ;

select * from tab where a = 1 ;

time9

commit ;

commit ;

  • A.session B没有执行DML语句,因此begin和commit操作没有实际意义.
  • B.session B第一个和第三个语句select结果相同.
  • C.session B后两个select语句结果相同.
  • D.session B前两个select语句结果相同.

4、(单选)下面不属于事务基本特性的是:  

  • A.并发性.
  • B.原子性.
  • C.一致性.
  • D.隔离性.

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.支持事务的引擎无法设置为启用自动提交.

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏性能与架构

SQL与MongoDB的对应关系图表

关系数据库有一套标准的SQL语句来操作数据库,MongoDB是文档型数据库,概念与操作方式与SQL都不相同,下面的几张表全面的表达了SQL与MongoDB的对应...

3846
来自专栏张善友的专栏

SQL Server 2008 FILESTREAM特性管理文件

在SQL Server 2008中,新的FILESTREAM(文件流)特性和varbinary列配合,你可以在服务器的文件系统上存储真实的数据,但可以在数据库上...

2406
来自专栏linux运维学习

linux学习第五十篇:MySQL创建用户以及授权,常用sql语句,MySQL数据库备份恢复

MySQL创建用户以及授权 给用户user1授权,指定IP:127.0.0.1,只有在这个IP下才能登陆,密码为11111,*.*是可以访问所有mysql文件,...

18910
来自专栏数据库

Oracle 数据库常用操作语句大全

一、Oracle数据库操作 1、创建数据库 create database databasename 2、删除数据库 drop database dbname ...

19410
来自专栏大眼瞪小眼

Mysql语句的执行过程

当你希望MySQL能够以更高的性能运行查询时,最好的办法是弄清楚MySQL是如何优化和执行查询。《高性能MySQL》

962
来自专栏Java架构师历程

MySQL 谈谈Memory存储引擎

memory存储引擎是MySQL中的一类特殊的存储引擎。其使用存储在内存中的内容来创建表,而且所有数据也放在内存中。这些特性都与InnoDB,MyISAM存储引...

2662
来自专栏运维技术迷

SQL复习之向现有数据库中添加文件组和数据文件

向现有数据库中添加文件组和数据文件,语句如下: use E_market --进入当前操作数据库 alter database E_market add fi...

1.4K6
来自专栏崔庆才的专栏

腾讯云主机中MySQL无法远程连接的解决办法

在远程主机上,我开启了mysql 服务,用 phpmyadmin 可以打开,比如说用户名为 root,密码为 123456。不过用 Mysql 客户端远程连接时...

5.2K0
来自专栏乐沙弥的世界

加强MySQL用户安全

   很多亲们在安装好了MySQL数据库之后,对于mysql用户表并没有做任何特殊的处理,因此缺省情况下,存在密码为空的用户,也有很多用户名和密码都为空的情形...

1031
来自专栏阿炬.NET

SQL Server2000导出数据时包含主键、字段默认值、描述等信息

36911

扫码关注云+社区

领取腾讯云代金券