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)等操作;