开发者社区> 技术小甜> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

mysql查询语句优化工具

简介:
+关注继续查看



把这个profiling功能打开,可以查看sql查询语句的整个过程中各种资源的消耗情况。

mysql> show profiles;
+----------+------------+---------------------------------+
| Query_ID | Duration   | Query                           |
+----------+------------+---------------------------------+
|        1 | 0.00049600 | show variables like "profiling" |
|        2 | 0.02267400 | show databases                  |
|        3 | 0.04235200 | SELECT DATABASE()               |
|        4 | 0.00012825 | SELECT DATABASE()               |
|        5 | 0.00025125 | show databases                  |
|        6 | 0.00145125 | show tables                     |
|        7 | 0.04207925 | show tables                     |
|        8 | 0.03485225 | select count(*) from host_item  |
+----------+------------+---------------------------------+


mysql> show profile cpu, block io  for query 8;
+----------------------+----------+----------+------------+--------------+---------------+
| Status               | Duration | CPU_user | CPU_system | Block_ops_in | Block_ops_out |
+----------------------+----------+----------+------------+--------------+---------------+
| starting             | 0.000634 | 0.000000 |   0.000000 |            0 |             0 |
| checking permissions | 0.000013 | 0.000000 |   0.000000 |            0 |             0 |
| Opening tables       | 0.000051 | 0.000000 |   0.000000 |            0 |             0 |
| System lock          | 0.000014 | 0.000000 |   0.000000 |            0 |             0 |
| init                 | 0.000015 | 0.000000 |   0.000000 |            0 |             0 |
| optimizing           | 0.033657 | 0.000000 |   0.000000 |           40 |             0 |
| statistics           | 0.000029 | 0.000000 |   0.000000 |            0 |             0 |
| preparing            | 0.000012 | 0.000000 |   0.000000 |            0 |             0 |
| executing            | 0.000006 | 0.000000 |   0.000000 |            0 |             0 |
| Sending data         | 0.000313 | 0.000000 |   0.000000 |            0 |             0 |
| end                  | 0.000008 | 0.000000 |   0.000000 |            0 |             0 |
| query end            | 0.000008 | 0.000000 |   0.000000 |            0 |             0 |
| closing tables       | 0.000047 | 0.000000 |   0.000000 |            0 |             0 |
| freeing items        | 0.000042 | 0.000000 |   0.000000 |            0 |             0 |
| logging slow query   | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |
| cleaning up          | 0.000003 | 0.000000 |   0.000000 |            0 |             0 |
+----------------------+----------+----------+------------+--------------+---------------


show profile后面可以跟参数:all或者cpu,block io,page faults等。


也可以在information_schema.profiling数据库表中直接查询:

select state,sum(duration) as total_r,round(100*sum(duration)/(select sum(duration) from information_schema.profiling where query_id=@query_id),2) as pct_r,count(*) as calls,sum(duration)/count(*) as "r/call" from information_schema.profiling where query_id=@query_id group by state order by total_r desc;


最后,关闭set profiling=0该功能。





















本文转自chenzudao51CTO博客,原文链接: http://blog.51cto.com/victor2016/1875012,如需转载请自行联系原作者






版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Mysql深入优化(四)--- MySQL常用工具、日志、主从复制、综合案例
如果业务系统中的数据量比较大(达到千万级别),这个时候,如果再对数据库进行查询,特别是进行分页查询,速度将变得很慢(因为在分页时首先需要count求合计数),为了提高访问效率,这个时候,可以考虑加入Solr 或者 ElasticSearch全文检索服务,来提高访问效率。
0 0
Mysql深入优化(三) --- 查询缓存优化、内存管理及优化、MySQL锁问题
排序区、连接区等缓存是分配给每个数据库会话(session)专用的,其默认值的设置要根据最大连接数合理分配,如果设置太大,不但浪费资源,而且在并发连接较高时会导致物理内存耗尽。
0 0
Mysql深入优化 (二) --- 体系结构、存储引擎、SQL优化
在查询语句中表名的后面,添加 use index 来提供希望MySQL去参考的索引列表,就可以让MySQL不再考虑其他可用的索引。
0 0
Mysql深入优化 (一) --- 索引、视图、存储过程、触发器
MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
0 0
【数据库】必须知道的MySQL优化
MySQL是关系型数据库在高并发场景下,会承受巨大的压力,就需要进行优化了
0 0
MySQL数据库4种常用优化方式,sql语句书写优化规范
MySQL数据库4种常用优化方式,sql语句书写优化规范
0 0
【MySQL技术之旅】(6)一直都倾向于优化查询,这次学习一下优化Insert插入语句
【MySQL技术之旅】(6)一直都倾向于优化查询,这次学习一下优化Insert插入语句
0 0
MySQL对于千万级的大表要怎么优化(SQL语句的优化)?
1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引
0 0
mysql的schema和数据类型优化
mysql的schema和数据类型优化
0 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
MySQL 技术大全:开发、优化与运维实战
立即下载
MySQL 5.7让优化更轻松
立即下载
MySQL 5.7优化不求人
立即下载