MYSQL中Profile的示例分析
这篇文章主要介绍MySQL中Profile的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
成都创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、网站制作、成都外贸网站建设、桑植网络推广、成都微信小程序、桑植网络营销、桑植企业策划、桑植品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;成都创新互联为所有大学生创业者提供桑植建站搭建服务,24小时服务热线:18980820575,官方网址:www.cdcxhl.com
MYSQL--Profile分析
在分析一条SQL语句的时候,发现在SQL语句的末尾或者最前面加空格,并不影响直接从QC里面去取结果。
参考手册里是这么说的:
查询必须是完全相同的(逐字节相同)才能够被认为是相同的。另外,同样的查询字符串由于其它原因可能认为是不同的。使用不同的、不同的协议版本或者不同 默认字符集的查询被认为是不同的查询并且分别进行缓存。
既然是要完全相同,那么如下两条SQL应该是不同的
select count(*) from t1 ;
select count(*) from t1 ;
但是在实际运行时,确的当作相同的SQL来执行的
> SHOW PROFILES;
+----------+------------+-----------------------------+
| Query_ID | Duration | Query |
+----------+------------+-----------------------------+
| 1 | 0.00006925 | select count(*) from t1 |
| 2 | 0.08126275 | insert into t1 values(6) |
| 3 | 0.00043675 | select count(*) from t1 |
| 4 | 0.00006850 | select count(*) from t1 |
| 5 | 0.00021075 | select count(*) from t1 |
| 6 | 0.00007150 | select count(*) from t1 |
| 7 | 0.00007300 | select count(*) from t1 |
| 8 | 0.00020975 | select count(*) from t1 |
+----------+------------+-----------------------------+
8 rows in set (0.00 sec) www.2cto.com
而且只是在前后加了空格的SQL语句,就直接从QC里面获取数据了,不再进行优化,执行等操作。
mysql> SHOW PROFILE FOR QUERY 7;
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| starting | 0.000022 |
| checking query cache for query | 0.000007 |
| checking privileges on cached | 0.000005 |
| sending cached result to clien | 0.000034 |
| logging slow query | 0.000003 |
| cleaning up | 0.000003 |
+--------------------------------+----------+
6 rows in set (0.00 sec)
在SQL的中间插入空格,才会当作不同的SQL来运行。
mysql> SHOW PROFILE FOR QUERY 8;
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| starting | 0.000023 | www.2cto.com
| checking query cache for query | 0.000049 |
| Opening tables | 0.000013 |
| System lock | 0.000005 |
| Table lock | 0.000037 |
| init | 0.000012 |
| optimizing | 0.000006 |
| executing | 0.000012 |
| end | 0.000004 |
| query end | 0.000003 |
| freeing items | 0.000036 |
| storing result in query cache | 0.000006 |
| logging slow query | 0.000003 |
| cleaning up | 0.000002 |
+--------------------------------+----------+
14 rows in set (0.00 sec)
从上面可以得到,QC在存储SQL语句的时候,是去掉了头尾的空格的。而且在查询时,也自动去掉首尾的空格,再到QC里面去比较的。
以上是“MYSQL中Profile的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注创新互联行业资讯频道!
网站名称:MYSQL中Profile的示例分析
文章源于:http://hbruida.cn/article/peegho.html