想要优化一条sql语句之前,我们需要先知道这条sql语句的瓶颈在哪profile是一个使用非常方便的查询诊断分析工具,通过该工具可以获取一条查询在整个执行过程中多种资源的消耗情况,例如内存消耗、I/O消耗和CPU消耗等。
其中type参数的可选项含义如下:
all:显示所有的信息
block io:限时输入输出操作阻塞的数量
context switches:显示自动或非自动context switches的数量
cpu:显示系统和用户cpu使用的时间
ipc:显示信息发送和接受的数量
memory:内存的信息
page faults:显示主要的page faults数量
source:显示函数的名称,并且系那是函数所在文件的名字和行数
swaps:显示swap数量
开启profile
set profiling = 1;
查看信息
在开启了query profiler功能之后,mysql就会自动记录所有执行的query的profile信息。下面执行query
通过执行 show profile 命令获取当前系统中保存的多个query的profile的概要信息。