首页 > mysql > sql语句的优化

sql语句的优化

作者:bin
目录
[隐藏]

一、使用show status 来查看sql的执行效率

show status like 'Com_%';

Com_select : select 执行次数

Com_inset : inset 执行次数

Com_update : update 执行次数

Com_delete : delete 执行次数

二、使用explian进行优化

关于explain的优化可以查看

三、使用profile进行优化

mysql从5.0.37开始支持profile语句,我们可以通过以下方式查看是否打开了profile

select @@have_profiling;

显示YES就是支持,

使用如下语句查看是否打开profile,默认时关闭的

select @@profiling;

可以使用以下语句打开profile

set  profiling=1;

打开profile后可以进行一次count操作;

select count(*) from countrys;

并且查看刚才执行所有sql的profiles;

show profiles;
+----------+------------+-------------------------------+
| Query_ID | Duration | Query |
+----------+------------+-------------------------------+
| 1 | 0.00006200 | select count(*) from countrys |

然后细化查看sql的执行过程;

show profile for query 1;

同时还可以查看cpu使用清空

show profile cpu for query;

tips:这里在相同的表结构与内容时,分别用MyISAM和InnoDB存储结构有明显的不同,因为MyISAM有表元数据的缓存,例如行数,而InnoDB是没有的,所以会多一个打开表(Opening tables),发送数据(Sending data),关闭表(closing tables)等操作;

 

 

您必须 [ 登录 ] 才能发表留言!