mysql06-解釋計劃

什麼是解釋計劃:

使用 EXPLAIN 關鍵字可以模擬優化器執行 SQL 查詢語句,從而知道 MySQL 是
如何處理你的 SQL 語句的。分析你的查詢語句或是表結構的性能瓶頸
 
執行計劃的語法
EXPLAIN select * from table1
 
解釋計劃包含的列以及其作用

 

 

ID 列:描述 select 查詢的序列號,包含一組數字,表示查詢中執行 select 子句或操作表的順
根據 ID 的數值結果可以分成一下三種情況
 id 相同:執行順序由上至下
 id 不同:如果是子查詢,id 的序號會遞增,id 值越大優先級越高,越先被執行
 id 相同不同:同時存在
 
 
select__type

 

 

type 顯示的是訪問類型
 
system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery >
index_subquery > range > index > ALL
 
System:表只有一行記錄(等於系統表),這是 const 類型的特列,平時不會出現,這個也
可以忽略不計
Const:表示通過索引一次就找到了
const 用於比較 primary key 或者 unique 索引。因爲只匹配一行數據,所以很快
如將主鍵置於 where 列表中,MySQL 就能將該查詢轉換爲一個常量
 

 

 

ref
顯示索引的哪一列被使用了,如果可能的話,是一個常數。哪些列或常量被用於查找索引列
上的值

 

 ================================================

sql 優化

 

策略 1.儘量全值匹配
策略 2.最左前綴
策略 3.不要在索引列做操作
策略 4.範圍查詢放最後
策略 5.儘量用覆蓋索引,少用select *,儘量訪問索引列
策略 6. 儘量不要用不等於
策略 7.not  null會用索引列失效,like的左%會使索引失效
策略 8.or.union 比 or 效率高
 
 
insert的優化
關閉自動提交,攢一些在提交,也就是批量插入
 
 
LOAD DATA INFLIE;
使用 LOAD DATA INFLIE ,比一般的 insert 語句快 20 倍
select * into OUTFILE 'D:\\product.txt' from product_info
load data INFILE 'D:\\product.txt' into table product_info
load data INFILE '/soft/product3.txt' into table product_info
show VARIABLES like 'secure_file_priv'
 secure_file_priv 爲 NULL 時,表示限制 mysqld 不允許導入或導出。
 secure_file_priv 爲 /tmp 時,表示限制 mysqld 只能在/tmp 目錄中執行導入導出,其他
目錄不能執行。
 secure_file_priv 沒有值時,表示不限制 mysqld 在任意目錄的導入導出。
secure_file_priv=''
 
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章