暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

答题记录

原创 Root__Liu 2023-06-13
188

1、某数据库想对权限进行规划,那么以下建议中,正确的有?BCD

A、系统权限可以任意赋予给用户。

B、在实际工作中,如果有两个以上的用户具有相同的对象权限,则建议将这几个用户规划为一个角色,并将这些权限赋予此角色。

C、系统管理员可以将某些数据库对象的所有权限赋予某个用户,也可以将某些数据库对象的部分权限分别赋予不同的用户。

D、从安全性考虑,系统权限应该分别赋予可信赖的用户。

2、MySQL查询表的统计信息可以通过以下哪些方式?BCDE 

A、show tables;

B、通过information_schema.tables

C、show table status;

D、通过MySQL.innodb_table_stats

E、通过information_schema.STATISTICS


3、MySQL事务中原子性指的是?B

A、事务中的状态不能分离

B、事务中的SQL命令不可分割执行

C、事务中的表不可分割

D、事务中的数据不可分割


4、按照class进行分组?B

A、order by class

B、group by class

C、group class


MySQL是一种关系型数据库管理系统,支持事务操作。在MySQL中,每个事务都是一个独立的单元,包含一系列的操作,这些操作要么全部执行成功,要么全部回滚。为了保证事务的正确执行,MySQL将事务分为四个分类:原子性、一致性、隔离性和持久性。本文将详细介绍其中两个分类:原子性与隔离性。


1.原子性

原子性是指一个事务中的所有操作要么全部成功,要么全部失败回滚,不会出现部分成功的情况。在MySQL中实现原子性的方式是通过使用提交和回滚操作。

提交操作:当一个事务执行完所有的操作,且所有操作都没有出现错误时,可以通过提交操作将事务的结果提交到数据库中。

回滚操作:当一个事务执行完所有的操作,但其中某些操作出现错误时,可以通过回滚操作将事务回滚到执行之前的状态,并放弃所有已经执行的操作。


实例代码:

START TRANSACTION;  // 开始事务
INSERT INTO mytable (name, age) VALUES ('Tom', 25); // 插入一条记录
UPDATE mytable SET age = age + 1; // 年龄加1
COMMIT; // 提交事务
复制

在这个例子中,如果 INSERT 和 UPDATE 操作都没有出现错误,则提交事务,将两个操作的结果保存到数据库中。如果其中一个操作出现错误,则会触发回滚操作,将所有操作回滚,并且不会将结果保存到数据库中。


2.隔离性

隔离性是指每个事务的执行应该是独立的,一个事务的执行不应该影响到其他事务的执行。在MySQL中实现隔离性的方式是使用锁和 MVCC(多版本并发控制)。

锁是指在对某个数据进行读或写操作时,将该数据锁定,保证在该操作未完成前其他事务无法读取或写入该数据。MySQL中提供了两种类型的锁:共享锁和排他锁。

共享锁是指多个事务可以同时读取某个数据,但只有一个事务能够进行写操作。排他锁是指在被锁定的数据上只能执行一种操作,其他事务无法进行任何操作。

MVCC 是 MySQL 使用的另一种并发控制方式,它保证每个事务都可以读取到它启动之前的数据。在每个事务启动时,MySQL会创建一个视图,用于记录该事务开始时的数据库状态。当其他事务进行修改时,MySQL会创建该操作的新版本,并保留旧版本的数据,以保证其他事务可以读取旧版本的数据。

实例代码:

START TRANSACTION;  // 开始事务
SELECT * FROM mytable WHERE age > 20 LOCK IN SHARE MODE; // 对mytable中age大于20的数据加共享锁
UPDATE mytable SET age = age + 1 WHERE age > 20; // 年龄加1
COMMIT; // 提交事务
复制

在这个例子中,对mytable中age大于20的数据进行读操作,并对这些数据加共享锁,保证其他事务同时可以读取这些数据。如果年龄大于20的数据出现更新操作,则需要对这些数据加排他锁,保证只有一个事务可以更新这些数据。


MySQL事务的原子性和隔离性是保证数据完整性和并发控制的重要手段。通过使用提交和回滚操作、锁和 MVCC 技术,可以保证事务在执行过程中不会出现部分成功的情况,同时各个事务之间也不会相互影响。了解和掌握这些技术,将有助于开发人员高效地管理和维护MySQL数据库。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论