自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MySQL Query Optimizer的實(shí)際應(yīng)用

數(shù)據(jù)庫(kù) MySQL
此文章主要向大家描述的是MySQL Query Optimizer選定的執(zhí)行計(jì)劃中查詢的序列號(hào)的時(shí)機(jī)應(yīng)用,以下就是文章的主要內(nèi)容。

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

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

DEPENDENT SUBQUERY:子查詢內(nèi)層的***個(gè)SELECT,依賴于外部查詢的結(jié)果集。

DEPENDENT UNION:子查詢中的UNION,且為UNION中從第二個(gè)SELECT開(kāi)始的后面所有SELECT,同樣依賴于外部查詢的結(jié)果集。

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

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

SUBQUERY:子查詢內(nèi)層查詢的***個(gè)SELECT,結(jié)果不依賴于外部查詢結(jié)果集。

UNCACHEABLE SUBQUERY:結(jié)果集無(wú)法緩存的子查詢。

UNION:UNION語(yǔ)句中第二個(gè)SELECT開(kāi)始后面的所有SELECT,***個(gè)SELECT為PRIMARY。

UNION RESULT:UNION 中的合并結(jié)果。

Table:顯示這一步所訪問(wèn)的數(shù)據(jù)庫(kù)中的表的名稱。

Type:告訴我們對(duì)表使用的訪問(wèn)方式,主要包含如下集中類型。

all:全表掃描。

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

eq_ref:最多只會(huì)有一條匹配結(jié)果,一般是通過(guò)主鍵或***鍵索引來(lái)訪問(wèn)。

fulltext:進(jìn)行全文索引檢索。

index:全索引掃描。

index_merge:查詢中同時(shí)使用兩個(gè)(或更多)索引,然后對(duì)索引結(jié)果進(jìn)行合并(merge),再讀取表數(shù)據(jù)。

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

rang:索引范圍掃描。

ref:Join語(yǔ)句中被驅(qū)動(dòng)表索引引用的查詢。

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

system:系統(tǒng)表,表中只有一行數(shù)據(jù);

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

Possible_keys:該查詢可以利用的索引。如果沒(méi)有任何索引可以使用,就會(huì)顯示成null,這項(xiàng)內(nèi)容對(duì)優(yōu)化索引時(shí)的調(diào)整非常重要。

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

Key_len:被選中使用索引的索引鍵長(zhǎng)度。

Ref:列出是通過(guò)常量(const),還是某個(gè)表的某個(gè)字段(如果是join)來(lái)過(guò)濾(通過(guò)key)的。

Rows:MySQL Query Optimizer 通過(guò)系統(tǒng)收集的統(tǒng)計(jì)信息估算出來(lái)的結(jié)果集記錄條數(shù)。

Extra:查詢中每一步實(shí)現(xiàn)的額外細(xì)節(jié)信息,主要會(huì)是以下內(nèi)容。

Distinct:查找distinct 值,當(dāng)mysql找到了***條匹配的結(jié)果時(shí),將停止該值的查詢,轉(zhuǎn)為后面其他值查詢。

Full scan on NULL key:子查詢中的一種優(yōu)化方式,主要在遇到無(wú)法通過(guò)索引訪問(wèn)null值的使用。

Range checked for each record (index map: N):通過(guò) MySQL 官方手冊(cè)的描述,當(dāng) MySQL Query Optimizer 沒(méi)有發(fā)現(xiàn)好的可以使用的索引時(shí),如果發(fā)現(xiàn)前面表的列值已知,部分索引可以使用。對(duì)前面表的每個(gè)行組合,MySQL檢查是否可以使用range或 index_merge訪問(wèn)方法來(lái)索取行。

SELECT tables optimized away:當(dāng)我們使用某些聚合函數(shù)來(lái)訪問(wèn)存在索引的某個(gè)字段時(shí),MySQL Query Optimizer 會(huì)通過(guò)索引直接一次定位到所需的數(shù)據(jù)行完成整個(gè)查詢。當(dāng)然,前提是在 Query 中不能有 GROUP BY 操作。如使用MIN()或MAX()的時(shí)候。

Using filesort:當(dāng)Query 中包含 ORDER BY 操作,而且無(wú)法利用索引完成排序操作的時(shí)候,MySQL Query Optimizer 不得不選擇相應(yīng)的排序算法來(lái)實(shí)現(xiàn)。

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

Using index for group-by:數(shù)據(jù)訪問(wèn)和 Using index 一樣,所需數(shù)據(jù)只須要讀取索引,當(dāng)Query 中使用GROUP BY或DISTINCT 子句時(shí),如果分組字段也在索引中,Extra中的信息就會(huì)是 Using index for group-by。

Using temporary:當(dāng) MySQL 在某些操作中必須使用臨時(shí)表時(shí),在 Extra 信息中就會(huì)出現(xiàn)Using temporary 。主要常見(jiàn)于 GROUP BY 和 ORDER BY 等操作中。

Using where:如果不讀取表的所有數(shù)據(jù),或不是僅僅通過(guò)索引就可以獲取所有需要的數(shù)據(jù),則會(huì)出現(xiàn) Using where 信息。

Using where with pushed condition:這是一個(gè)僅僅在 NDBCluster存儲(chǔ)引擎中才會(huì)出現(xiàn)的信息,而且還須要通過(guò)打開(kāi) Condition Pushdown 優(yōu)化功能才可能被使用??刂茀?shù)為 engine_condition_pushdown 。

Impossible WHERE noticed after reading const tables:MySQL Query Optimizer 通過(guò)收集到的統(tǒng)計(jì)信息判斷出不可能存在結(jié)果。

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

Not exists:在某些左連接中,MySQL Query Optimizer通過(guò)改變?cè)?Query 的組成而使用的優(yōu)化方法,可以部分減少數(shù)據(jù)訪問(wèn)次數(shù)。

【編輯推薦】

  1. MySQL數(shù)據(jù)庫(kù)在眾多表中對(duì)表名的查詢
  2. MySQL 查詢緩存的實(shí)際應(yīng)用代碼示例
  3. MySQL數(shù)據(jù)庫(kù)文件壞掉的解決
  4. c# 連接MySQL中文亂碼問(wèn)題的正確方案
  5. 設(shè)置MySQL同步的正確方案描述
責(zé)任編輯:佚名 來(lái)源: cnblogs
相關(guān)推薦

2010-06-07 10:08:52

MySQL FLUSH

2010-05-24 09:57:08

2010-05-18 13:34:42

MySQL條件sele

2010-06-02 13:33:19

MySQL 查詢緩存

2010-05-19 12:44:58

2010-05-21 16:41:22

MySQL SHOW

2010-05-18 14:21:35

MySQL視圖

2010-06-02 17:46:54

MySQL 查詢緩存

2010-05-18 16:29:44

MySQL修改表

2010-05-21 17:22:22

2010-05-13 13:49:09

MySQL數(shù)據(jù)庫(kù)

2010-05-24 09:24:15

MySQL 備份

2010-05-12 17:26:55

MySQL維護(hù)

2010-05-12 09:42:24

MySQL 列值比較

2010-05-27 18:06:12

MySQL 修改roo

2010-05-28 11:41:46

MySQL數(shù)據(jù)庫(kù)備份

2010-05-25 14:42:14

MySQL 數(shù)據(jù)庫(kù)

2010-05-31 14:59:36

PHP + MySQL

2010-05-18 17:24:44

MySQL修改表字段

2010-05-31 15:49:29

MySQL臨時(shí)表
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)