mysql查询sql的执行频率定位慢查询语句以及sql调优show profile

mysql查询sql的执行频率

show status like 'uptime';

show status like 'com_select';

show status like 'Thread_%';

connections

table_locks_immediate

table_locks_waited

slow_launch_threads

slow_queries

max_used_connctions

定位执行效率低的sql语句

1、通过慢查询日志定位

2、使用show full processlist来查询

找到语句后,可以通过show profile for query N,explain 或trace来优化这些语句

如何使用trace,先打开设置,再执行一次sql,最后查看information_schema.optimize_trace表中的内容,该表为临时表,只能在当前会话进行查询,每次查询返回的都是最近一次执行的sql语句。

show variables like '%trace%';

如何打开

set optimizer_trace = 'enabled = on'

set optimizer_trace_max_mem_size=1000000

set end_markers_in_json = on

set optimizer_trace_limit = 1

trace是MySQL5.6版本后提供的SQL跟踪工具,通过使用trace可以让我们明白optimizer(优化器)如何选择执行计划。

注意:开启trace工具会影响mysql性能,所以只适合临时分析sql使用,用完之后请立即关闭。

一.查看trace开关状态,默认关闭的

   show variables like 'optimizer_trace';

1.会话级别临时开启,只在当前会话生效。

set session optimizer_trace="enabled=on",end_markers_in_json=on;

2.永久开启(重启失效)

注意用完关闭

set optimizer_trace="enabled=on";

set session optimizer_trace="enabled=on",end_markers_in_json=on;
select * from t_student where std_name > 'a' order by age;
SELECT * FROM information_schema.OPTIMIZER_TRACE;

关闭trace

   set session optimizer_trace="enabled=off";
   Show Profile是mysql提供的可以用来分析当前会话中sql语句执行的资源消耗情况的工具,可用于sql调优的测量。默认情况下处于关闭状态,并保存最近15次的运行结果。 使用show profile分析sql语句性能消耗 可以查询到sql会执行多少时间,并显示cpu,内存使用量,执行过程中系统锁及表锁的花费时间等信息。

show variables like '%profile%';

set profiling = 1

show profile for query 1

show profile cpu for query 1

show profile memory for query 1

show profile block io,cpu for query 1

show profile source for query 1

select @@profiling

比如执行:show profile cpu,block io for query 15;
5.show profile的常用查询参数。
①ALL:显示所有的开销信息。
②BLOCK IO:显示块IO开销。
③CONTEXT SWITCHES:上下文切换开销。
④CPU:显示CPU开销信息。
⑤IPC:显示发送和接收开销信息。
⑥MEMORY:显示内存开销信息。
⑦PAGE FAULTS:显示页面错误开销信息。
⑧SOURCE:显示和Source_function,Source_file,Source_line相关的开销信息。
⑨SWAPS:显示交换次数开销信息。
①converting HEAP to MyISAM:查询结果太大,内存不够,数据往磁盘上搬了。
②Creating tmp table:创建临时表。先拷贝数据到临时表,用完后再删除临时表。
③Copying to tmp table on disk:把内存中临时表复制到磁盘上,危险!!!
④locked。
如果在show profile诊断结果中出现了以上4条结果中的任何一条,则sql语句需要优化。
https://blog.csdn.net/m0_61853556/article/details/132051318

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: