您好,登錄后才能下訂單哦!
這篇文章主要介紹MYSQL中Profile的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!
MYSQL--Profile分析
在分析一條SQL語句的時(shí)候,發(fā)現(xiàn)在SQL語句的末尾或者最前面加空格,并不影響直接從QC里面去取結(jié)果。
參考手冊(cè)里是這么說的:
查詢必須是完全相同的(逐字節(jié)相同)才能夠被認(rèn)為是相同的。另外,同樣的查詢字符串由于其它原因可能認(rèn)為是不同的。使用不同的、不同的協(xié)議版本或者不同 默認(rèn)字符集的查詢被認(rèn)為是不同的查詢并且分別進(jìn)行緩存。
既然是要完全相同,那么如下兩條SQL應(yīng)該是不同的
select count(*) from t1 ;
select count(*) from t1 ;
但是在實(shí)際運(yùn)行時(shí),確的當(dāng)作相同的SQL來執(zhí)行的
> 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里面獲取數(shù)據(jù)了,不再進(jìn)行優(yōu)化,執(zhí)行等操作。
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的中間插入空格,才會(huì)當(dāng)作不同的SQL來運(yùn)行。
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在存儲(chǔ)SQL語句的時(shí)候,是去掉了頭尾的空格的。而且在查詢時(shí),也自動(dòng)去掉首尾的空格,再到QC里面去比較的。
以上是“MYSQL中Profile的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。