題目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_latencyFROM sys.statement_analysisORDER 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_latencyFROM sys.statement_analysisORDER 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
視圖獲取查詢相關性能指標(如執行次數、平均延遲、鎖延遲等)的方法,掌握根據這些指標判斷哪些查詢需要重點優化以減少執行時間。 - 性能優化策略:掌握常見的查詢性能優化策略,如索引優化、查詢語句重寫等,能夠根據查詢性能分析結果制定針對性的優化方案。