有几种方法可以查看MySQL select语句的执行效率:
使用EXPLAIN命令:在执行SELECT语句之前,可以在该语句前加上EXPLAIN关键字,然后执行这个语句。这将返回一个关于查询执行计划的结果集,包含有关使用的索引、访问类型、扫描行数等信息。通过分析这些信息,可以确定查询的执行效率。
mysql> EXPLAIN SELECT * FROM `tab_user_pay_game_17` WHERE (created_at BETWEEN '2022-09-05 18:55:19' and '2024-09-05 18:55:19' ) \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: tab_user_pay_game_17
partitions: partition2022,partition2023,partition2024
type: ALL
possible_keys: idx_tab_user_pay_game_17_pay_created_at
key: NULL
key_len: NULL
ref: NULL
rows: 1481
filtered: 100.00
Extra: Using where
1 row in set, 1 warning (0.00 sec)
使用SHOW PROFILE命令:通过执行SET profiling=1命令打开性能分析,然后执行SELECT语句。之后,可以使用SHOW PROFILE命令来查看执行SELECT语句期间的详细性能分析信息,包括每个阶段的耗时、扫描行数等。
使用性能分析工具:MySQL提供了一些性能分析工具,如MySQL Enterprise Monitor、Percona Toolkit等。这些工具可以提供更详细的性能指标和分析报告,帮助你深入了解SELECT语句的执行效率并找出可能存在的问题。
desc sql语句
mysql> desc SELECT * FROM `tab_user_pay_game_17` WHERE (created_at BETWEEN '2022-09-05 18:55:19' and '2024-09-05 18:55:19' ) \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: tab_user_pay_game_17
partitions: partition2022,partition2023,partition2024
type: ALL
possible_keys: idx_tab_user_pay_game_17_pay_created_at
key: NULL
key_len: NULL
ref: NULL
rows: 1481
filtered: 100.00
Extra: Using where
1 row in set, 1 warning (0.00 sec)









网友评论