1. 程式人生 > 其它 >Vue的基礎語法

Vue的基礎語法

1.抓取資料

-- 檢視慢查詢收集是否開啟
SHOW VARIABLES LIKE 'slow_query%';

-- 開啟慢查詢收集
SET GLOBAL slow_query_log='ON';

-- 檢視慢查詢收集的閾值
SHOW VARIABLES LIKE 'long_query_time';

-- 設定慢查詢收集的閾值為3秒
SET GLOBAL long_query_time=3;

-- 檢視慢查詢被收集的記錄數目
SHOW GLOBAL STATUS LIKE '%Slow_queries%';

2.EXPLAIN 檢視執行計劃

【 id 】

可以獲得SQL的執行順序

數字越大,越早被執行;數字相同,由上往下執行;

【 select_type 】
-SIMPLE  簡單的查詢

-PRIMARY  最外層的表,通常和UNION、DERIVED混合使用

-UNION  表被union

-DERIVED  派生表,如巢狀查詢SELECT t.* FROM ( SELECT class_name FROM tb_class ) t 中的 tb_class 表

【 table 】

參與的表名稱

當值為<derived4> 時,表示 id 為 4 的派生表

【 type 】

- ALL  全表掃描

- index  按照索引順序全表掃描

-range  範圍掃描

- ref  走了不唯一的索引掃描  

- eq_ref  走了唯一性索引

- const  where 主鍵 = 常量  

【 possible_keys 】
預測應該被使用到的索引

【 key 】
實際使用到的索引

【 key_len 】

索引key的長度。

主要區分複合索引,當用到了相同的複合索引,有效列列越多,key_len長度越長

【 ref 】

一般標識 where 語句部分,where表等號 後邊部分

- 庫.表.欄位

- 常量

【rows】

查詢語句影響的行數

【Extra】

- Using filesort

當排序無法使用索引的時候,MySQL 會選擇一定的演算法進行排序,資料少時會在記憶體進行排序,資料多時會在磁碟進行排序

- Using temporary

一般查詢語句中包含 order by , group by 會出現

為了解決查詢,MySQL需要建立一個臨時表來容納結果。典型情況如查詢包含可以按不同情況列出列的GROUP BY和ORDER BY子句時。很明顯就是通過where條件一次性檢索出來的結果集太大了,記憶體放不下了,只能通過家裡臨時表來輔助處理;

3.建索引

全值匹配我最愛,帶頭大哥不能死,中間兄弟不能斷,範圍之後全無效

不能使用索引 !=、<>、is null、is not null、like ‘%xx’

少用 or

like 索引失效問題

建帶有like列的複合索引

用IN 還是用 exists

大前提,A\B兩表id建索引

SELECT * FROM A WHERE A.id IN ( SELECT id FROM B )
從少的(B)裡面挑多的(A)用in

從多的裡面挑少的用exists