成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

MySQL Query Optimizer的實際應用

數據庫 MySQL
此文章主要向大家描述的是MySQL Query Optimizer選定的執行計劃中查詢的序列號的時機應用,以下就是文章的主要內容。

以下的文章主要描述的是MySQL Query Optimizer選定的執行計劃中查詢的序列號。MySQL Query Optimizer只有在執行計劃中查詢的序列號時能用得到,如果你對其實際操作感興趣的話,以下的文章你不妨瀏覽一下。

Select_type:所使用的查詢類型,主要有以下這幾種查詢類型。

DEPENDENT SUBQUERY:子查詢內層的***個SELECT,依賴于外部查詢的結果集。

DEPENDENT UNION:子查詢中的UNION,且為UNION中從第二個SELECT開始的后面所有SELECT,同樣依賴于外部查詢的結果集。

PRIMARY:子查詢中的最外層查詢,注意并不是主鍵查詢。

SIMPLE:除子查詢或UNION之外的其他查詢。

SUBQUERY:子查詢內層查詢的***個SELECT,結果不依賴于外部查詢結果集。

UNCACHEABLE SUBQUERY:結果集無法緩存的子查詢。

UNION:UNION語句中第二個SELECT開始后面的所有SELECT,***個SELECT為PRIMARY。

UNION RESULT:UNION 中的合并結果。

Table:顯示這一步所訪問的數據庫中的表的名稱。

Type:告訴我們對表使用的訪問方式,主要包含如下集中類型。

all:全表掃描。

const:讀常量,最多只會有一條記錄匹配,由于是常量,實際上只須要讀一次。

eq_ref:最多只會有一條匹配結果,一般是通過主鍵或***鍵索引來訪問。

fulltext:進行全文索引檢索。

index:全索引掃描。

index_merge:查詢中同時使用兩個(或更多)索引,然后對索引結果進行合并(merge),再讀取表數據。

index_subquery:子查詢中的返回結果字段組合是一個索引(或索引組合),但不是一個主鍵或***索引。

rang:索引范圍掃描。

ref:Join語句中被驅動表索引引用的查詢。

ref_or_null:與ref的***區別就是在使用索引引用的查詢之外再增加一個空值的查詢。

system:系統表,表中只有一行數據;

unique_subquery:子查詢中的返回結果字段組合是主鍵或***約束。

Possible_keys:該查詢可以利用的索引。如果沒有任何索引可以使用,就會顯示成null,這項內容對優化索引時的調整非常重要。

Key:MySQL Query Optimizer 從 possible_keys 中所選擇使用的索引。

Key_len:被選中使用索引的索引鍵長度。

Ref:列出是通過常量(const),還是某個表的某個字段(如果是join)來過濾(通過key)的。

Rows:MySQL Query Optimizer 通過系統收集的統計信息估算出來的結果集記錄條數。

Extra:查詢中每一步實現的額外細節信息,主要會是以下內容。

Distinct:查找distinct 值,當mysql找到了***條匹配的結果時,將停止該值的查詢,轉為后面其他值查詢。

Full scan on NULL key:子查詢中的一種優化方式,主要在遇到無法通過索引訪問null值的使用。

Range checked for each record (index map: N):通過 MySQL 官方手冊的描述,當 MySQL Query Optimizer 沒有發現好的可以使用的索引時,如果發現前面表的列值已知,部分索引可以使用。對前面表的每個行組合,MySQL檢查是否可以使用range或 index_merge訪問方法來索取行。

SELECT tables optimized away:當我們使用某些聚合函數來訪問存在索引的某個字段時,MySQL Query Optimizer 會通過索引直接一次定位到所需的數據行完成整個查詢。當然,前提是在 Query 中不能有 GROUP BY 操作。如使用MIN()或MAX()的時候。

Using filesort:當Query 中包含 ORDER BY 操作,而且無法利用索引完成排序操作的時候,MySQL Query Optimizer 不得不選擇相應的排序算法來實現。

Using index:所需數據只需在 Index 即可全部獲得,不須要再到表中取數據。

Using index for group-by:數據訪問和 Using index 一樣,所需數據只須要讀取索引,當Query 中使用GROUP BY或DISTINCT 子句時,如果分組字段也在索引中,Extra中的信息就會是 Using index for group-by。

Using temporary:當 MySQL 在某些操作中必須使用臨時表時,在 Extra 信息中就會出現Using temporary 。主要常見于 GROUP BY 和 ORDER BY 等操作中。

Using where:如果不讀取表的所有數據,或不是僅僅通過索引就可以獲取所有需要的數據,則會出現 Using where 信息。

Using where with pushed condition:這是一個僅僅在 NDBCluster存儲引擎中才會出現的信息,而且還須要通過打開 Condition Pushdown 優化功能才可能被使用??刂茀禐?engine_condition_pushdown 。

Impossible WHERE noticed after reading const tables:MySQL Query Optimizer 通過收集到的統計信息判斷出不可能存在結果。

No tables:Query 語句中使用 FROM DUAL或不包含任何 FROM子句。

Not exists:在某些左連接中,MySQL Query Optimizer通過改變原有 Query 的組成而使用的優化方法,可以部分減少數據訪問次數。

【編輯推薦】

  1. MySQL數據庫在眾多表中對表名的查詢
  2. MySQL 查詢緩存的實際應用代碼示例
  3. MySQL數據庫文件壞掉的解決
  4. c# 連接MySQL中文亂碼問題的正確方案
  5. 設置MySQL同步的正確方案描述
責任編輯:佚名 來源: cnblogs
相關推薦

2010-06-07 10:08:52

MySQL FLUSH

2010-05-24 09:57:08

2010-05-18 13:34:42

MySQL條件sele

2010-05-19 12:44:58

2010-06-02 13:33:19

MySQL 查詢緩存

2010-05-21 16:41:22

MySQL SHOW

2010-05-18 14:21:35

MySQL視圖

2010-05-18 16:29:44

MySQL修改表

2010-06-02 17:46:54

MySQL 查詢緩存

2010-05-13 13:49:09

MySQL數據庫

2010-05-21 17:22:22

2010-05-24 09:24:15

MySQL 備份

2010-05-12 09:42:24

MySQL 列值比較

2010-05-27 18:06:12

MySQL 修改roo

2010-05-28 11:41:46

MySQL數據庫備份

2010-05-12 17:26:55

MySQL維護

2010-05-17 09:25:34

MySql 編碼設置

2010-05-18 09:31:05

MySQL修改表

2010-05-18 17:24:44

MySQL修改表字段

2010-05-25 14:42:14

MySQL 數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品国产亚洲一区二区三区大结局 | 在线观看亚 | 高清免费av | 免费一区二区 | 久久精品久久久久久 | 日韩色在线 | 超碰在线久 | 日本久久精 | 欧美精品一区二区在线观看 | 亚洲一区二区三区四区五区午夜 | 亚洲一在线 | 久久精品伊人 | 久久蜜桃av一区二区天堂 | 久久99精品久久久久久国产越南 | 韩日有码 | 久久新| 黄色网络在线观看 | 一级女毛片 | 免费二区| www.4hu影院 | 久久99精品久久久久蜜桃tv | 日韩久久精品 | 人人做人人澡人人爽欧美 | 午夜伦4480yy私人影院 | 久久久久久久97 | 亚洲国产精品久久人人爱 | 亚洲成人福利 | 日本天堂一区 | 国产免费一区 | 在线免费黄色小视频 | 国产在线视频一区二区 | 亚洲成人三区 | 成人免费视频播放 | 日本一区二区在线视频 | 亚洲一区二区三区久久久 | 久久青青 | 一级毛片免费看 | 国产aa | 男女污污动态图 | 亚洲精品自在在线观看 | 欧美精品日韩 |