题目49
Choose the best answer.
t is a non - empty InnoDB table.
Examine these statements, which are executed in one session:
BEGIN;
SELECT * FROM t FOR UPDATE;
Which is true?
○ A) mysqlcheck --analyze --all - databases will execute normally on all tables and return a report.
○ B) If ANALYZE TABLE; is invoked from the same session, it hangs until the transaction is committed or rolled back.
○ C) If OPTIMIZE LOCAL TABLE t; is invoked from another session, it executes normally and returns the status.
○ D) If OPTIMIZE TABLE; is invoked, it will create a table lock on t and force a transaction rollback.
翻译
选择最佳答案。
t 是一个非空的InnoDB表。
查看在一个会话中执行的这些语句:
BEGIN;
SELECT * FROM t FOR UPDATE;
以下哪项是正确的?
○ A) mysqlcheck --analyze --all - databases 将在所有表上正常执行并返回报告。
○ B) 如果在同一会话中调用ANALYZE TABLE; ,它将一直挂起,直到事务提交或回滚。
○ C) 如果在另一个会话中调用OPTIMIZE LOCAL TABLE t; ,它将正常执行并返回状态。
○ D) 如果调用OPTIMIZE TABLE; ,它将在t 上创建表锁并强制事务回滚。
解析和答案
- 选项A:
mysqlcheck --analyze --all - databases
会对所有数据库的表进行操作,由于当前表t
已经被锁定(SELECT * FROM t FOR UPDATE;
会对表加锁),所以该命令不能正常在所有表上执行 ,A错误。 - 选项B:在同一会话中,
ANALYZE TABLE
不会因为已有的事务而挂起 ,B错误。 - 选项C:
OPTIMIZE LOCAL TABLE t
在另一个会话中调用时,由于表t
已被锁定,不能正常执行 ,C错误。 - 选项D:
OPTIMIZE TABLE
操作需要获取表锁,而表t
已经被当前事务锁定,所以会创建表锁并强制当前事务回滚 ,D正确。
所以答案是D。
知识点总结
- InnoDB事务与锁机制:理解InnoDB存储引擎中事务的开启(如
BEGIN
)和锁的使用(如SELECT... FOR UPDATE
加锁)原理。掌握不同操作(如mysqlcheck
、ANALYZE TABLE
、OPTIMIZE TABLE
等)对表锁的需求以及在事务存在时的执行情况,明确锁冲突对事务和操作的影响。 - 数据库操作并发控制:深入了解数据库操作中的并发控制机制,当多个操作同时涉及到被锁定的表时,能够分析出可能出现的问题(如操作无法正常执行、事务回滚等),并采取相应措施(如合理安排操作顺序、优化事务逻辑等)来保障数据库的正常运行和数据一致性。
题目50
Choose two.
Which two statements are true about using MySQL Enterprise Monitor Query Analyzer?
□ A) It is possible to retrieve a normalized statement, but never the exact statement that was executed.
□ B) The single query QRTi pie chart in the Query Analyzer view is based on the average execution of all statements.
□ C) It is possible to import data into the Query Analyzer from heterogeneous sources, such as CSV.
□ D) It is possible to list and analyze statements in an arbitrary graph range selection from timeseries graphs.
□ E) It is possible to configure the Query Analysis built-in advisor to get notified about slow query execution.
翻译
选择两项。
关于使用MySQL企业监控查询分析器,以下哪两个陈述是正确的?
□ A) 可以检索到规范化的语句,但永远无法检索到实际执行的精确语句。
□ B) 查询分析器视图中的单个查询QRTi饼图是基于所有语句的平均执行情况。
□ C) 可以从CSV等异构源将数据导入查询分析器。
□ D) 可以从时间序列图中任意选择图形范围来列出和分析语句。
□ E) 可以配置查询分析内置顾问来接收慢查询执行的通知。
解析和答案
- 选项A:在MySQL Enterprise Monitor Query Analyzer中,既可以检索到规范化语句,也能获取实际执行的精确语句 ,A错误。
- 选项B:单个查询QRTi饼图并非基于所有语句的平均执行情况 ,B错误。
- 选项C:该查询分析器不支持从CSV等异构源导入数据 ,C错误。
- 选项D:能够从时间序列图中任意选择范围来对语句进行列出和分析 ,D正确。
- 选项E:可以对查询分析内置顾问进行配置,从而接收慢查询执行的通知 ,E正确。
所以答案是D、E。
知识点总结
- MySQL企业监控查询分析器:了解MySQL Enterprise Monitor Query Analyzer的功能特性,包括对查询语句的检索、分析方式,以及内置顾问的配置等,明确其不支持的功能(如异构源数据导入等)。
- 数据库性能监控:掌握数据库性能监控工具的使用方法和相关概念,通过查询分析器对查询语句进行监控和优化,提升数据库性能。
题目51
Choose three.
Examine this command, which executes successfully:
cluster.addInstance('<user>@<host>:<port>', {recoveryMethod: 'clone'})
Which three statements are true?
□ A) It is always slower than {recoveryMethod: ‘incremental’}.
□ B) InnoDB tablespaces outside the datadir are able to be cloned.
□ C) A target instance must exist, then it will be provisioned with data from an instance already in the cluster and joined to the cluster.
□ D) The account used to perform this recovery and join operation needs the BACKUP_ADMIN privilege.
□ E) A new instance is installed, initialized, and provisioned with data from an instance already in the cluster and joined to the cluster.
□ F) InnoDB redo logs must not rotate for the duration of the execution; otherwise, the recovery will fail.
翻译
选择三项。
查看这条成功执行的命令:
cluster.addInstance('<user>@<host>:<port>', {recoveryMethod: 'clone'})
以下哪三个陈述是正确的?
□ A) 它总是比{recoveryMethod: ‘incremental’}慢。
□ B) 数据目录之外的InnoDB表空间能够被克隆。
□ C) 目标实例必须存在,然后它将从集群中已有的实例获取数据并加入集群。
□ D) 执行此恢复和加入操作的账户需要BACKUP_ADMIN权限。
□ E) 会安装、初始化一个新实例,并从集群中已有的实例获取数据并加入集群。
□ F) 在执行期间InnoDB重做日志不能轮转;否则,恢复将失败。
解析和答案
- 选项A:
clone
方式不一定总是比incremental
慢,具体取决于多种因素,如数据量等,A错误。 - 选项B:使用
clone
方法时,InnoDB表空间即使在数据目录之外也能被克隆 ,B正确。 - 选项C:执行该命令时,目标实例必须先存在,然后从集群中已有实例获取数据并加入集群 ,C正确。
- 选项D:执行此操作的账户确实需要
BACKUP_ADMIN
权限 ,D正确。 - 选项E:目标实例是已存在的,并非新安装和初始化的实例 ,E错误。
- 选项F:
clone
方法不受InnoDB重做日志轮转的影响 ,F错误。
所以答案是B、C、D。
知识点总结
- InnoDB集群实例添加:了解
cluster.addInstance()
命令在InnoDB集群中添加实例的操作方式,掌握使用clone
恢复方法时的相关特性和要求,如目标实例状态、权限需求等。 - 数据库权限与操作:理解在数据库操作(如集群实例添加和数据恢复)中不同权限(如
BACKUP_ADMIN
)的作用,以及操作过程中对数据库组件(如InnoDB表空间、重做日志等)的影响和相关规则。
题目52
Choose two.
Examine this statement and output:
mysql> SELECT ROW_NUMBER() OVER() AS QN,
query, exec_count, avg_latency, lock_latency
FROM sys.statement_analysis
ORDER BY exec_count;
QN | query | exec_count | avg_latency | lock_latency |
---|---|---|---|---|
1 | SELECT SUM ( k ) FROM `mysch… ( ) - INTERVAL ? SQL_TSI_HOUR |
381268 | 31.44 ms | 1.01 m |
2 | SELECT id , val , a , b... updatedWHERE created` < ? |
150317 | 358.34 us | 30.06 s |
3 | SELECT emp_no , val , cre... ated + INTERVAL ? SQL_TSI_DAY |
600 | 523.32 ms | 120.24 ms |
4 | SELECT a , b , c FROM m... ? AND ? OR k` BETWEEN ? AND ? |
200 | 10.32 s | 40.19 ms |
5 | SELECT a , b FROM myschem... G ( emp_no) WHERE val` = ? |
1 | 21.03 s | 274.00 us |
You must try to reduce query execution time.
Which two queries should you focus on?
□ A) QN = 2
□ B) QN = 3
□ C) QN = 4
□ D) QN = 1
□ E) QN = 5
翻译
选择两项。
查看以下语句及输出:
mysql> SELECT ROW_NUMBER() OVER() AS QN,
query, exec_count, avg_latency, lock_latency
FROM sys.statement_analysis
ORDER BY exec_count;
QN | query | exec_count | avg_latency | lock_latency |
---|---|---|---|---|
1 | SELECT SUM ( k ) FROM `mysch… ( ) - INTERVAL ? SQL_TSI_HOUR |
381268 | 31.44 ms | 1.01 m |
2 | SELECT id , val , a , b... updatedWHERE created` < ? |
150317 | 358.34 us | 30.06 s |
3 | SELECT emp_no , val , cre... ated + INTERVAL ? SQL_TSI_DAY |
600 | 523.32 ms | 120.24 ms |
4 | SELECT a , b , c FROM m... ? AND ? OR k` BETWEEN ? AND ? |
200 | 10.32 s | 40.19 ms |
5 | SELECT a , b FROM myschem... G ( emp_no) WHERE val` = ? |
1 | 21.03 s | 274.00 us |
你需要尝试减少查询执行时间。
你应该关注哪两个查询?
□ A) QN = 2
□ B) QN = 3
□ C) QN = 4
□ D) QN = 1
□ E) QN = 5
解析和答案
- 选项A:QN = 2的查询,平均延迟为358.34微秒,相对其他高延迟查询来说较低,不是重点关注对象 ,A错误。
- 选项B:QN = 3的查询,执行次数600,平均延迟523.32毫秒,不是平均延迟最高的,不是首要关注对象 ,B错误。
- 选项C:QN = 4的查询,平均延迟为10.32秒,属于较高延迟,需要重点关注来优化 ,C正确。
- 选项D:QN = 1的查询,虽然执行次数多,但平均延迟31.44毫秒相对不算高,不是重点 ,D错误。
- 选项E:QN = 5的查询,平均延迟为21.03秒,是较高延迟的查询,需要重点关注优化 ,E正确。
所以答案是C、E。
知识点总结
- MySQL查询性能分析:了解通过
sys.statement_analysis
视图获取查询相关性能指标(如执行次数、平均延迟、锁延迟等)的方法,掌握根据这些指标判断哪些查询需要重点优化以减少执行时间。 - 性能优化策略:掌握常见的查询性能优化策略,如索引优化、查询语句重写等,能够根据查询性能分析结果制定针对性的优化方案。