?EXPLAIN?SELECT?1;其實除了以SELECT開頭的查詢語句,其余的DELETE、INSERT、REPLACE以及UPDATE語句前邊都可以加上EXPLAIN這個詞兒,用來查看這些語句的執(zhí)行計劃建兩張測試表:CREATE?T..." />

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频

最完整的Explain總結(jié),SQL優(yōu)化不再困難

共 12063字,需瀏覽 25分鐘

 ·

2020-10-25 04:38

先看看具體有哪些字段:

mysql>?EXPLAIN?SELECT?1;

其實除了以SELECT開頭的查詢語句,其余的DELETE、INSERT、REPLACE以及UPDATE語句前邊都可以加上EXPLAIN這個詞兒,用來查看這些語句的執(zhí)行計劃

建兩張測試表:

CREATE?TABLE?t1?(
????id?INT?NOT?NULL?AUTO_INCREMENT,
????key1?VARCHAR(100),
????key2?VARCHAR(100),
????key3?VARCHAR(100),
????name?VARCHAR(100),
????PRIMARY?KEY?(id),
????KEY?idx_key1?(key1),
????KEY?idx_key2_key3(key2,?key3)
)?Engine=InnoDB?CHARSET=utf8;

CREATE?TABLE?t2?(
????id?INT?NOT?NULL?AUTO_INCREMENT,
????key1?VARCHAR(100),
????key2?VARCHAR(100),
????key3?VARCHAR(100),
????name?VARCHAR(100),
????PRIMARY?KEY?(id),
????KEY?idx_key1?(key1),
????KEY?idx_key2_key3(key2,?key3)
)?Engine=InnoDB?CHARSET=utf8;

兩個變種

explain extended

會在 explain 的基礎(chǔ)上額外提供一些查詢優(yōu)化的信息。緊隨其后通過 show warnings 命令可以 得到優(yōu)化后的查詢語句,從而看出優(yōu)化器優(yōu)化了什么

explain?extended?SELECT?*?FROM?t1?where?key1?=?'11';
show?warnings;

explain partitions

相比 explain 多了個 partitions 字段,如果查詢是基于分區(qū)表的話,會顯示查詢將訪問的分區(qū)。

EXPLAIN?PARTITIONS?SELECT?*?FROM?t1?INNER?JOIN?t2?ON?t1.key3?=?t2.key3;

table列

這一列表示 explain 的一行正在訪問哪個表

mysql>?EXPLAIN?SELECT?*?FROM?t1;

這個查詢語句只涉及對t1表的單表查詢,所以EXPLAIN輸出中只有一條記錄,其中的table列的值是t1,表明這條記錄是用來說明對t1表的單表訪問。

mysql>?EXPLAIN?SELECT?*?FROM?t1?INNER?JOIN?t2;

可以看到這個連接查詢的執(zhí)行計劃中有兩條記錄,這兩條記錄的table列分別是t1和t2,這兩條記錄用來分別說明對t1表和t2表的訪問

注意:

當(dāng) from 子句中有子查詢時,table列是??格式,表示當(dāng)前查詢依賴 id=N 的查詢,于是先執(zhí)行 id=N 的查詢。當(dāng)有 union 時,UNION RESULT 的 table 列的值為,1和2表示參與 union 的 select 行id。

id列

id列的編號是 select 的序列號,有幾個 select 就有幾個id,并且id的順序是按 select 出現(xiàn)的順序增長的。

id列越大執(zhí)行優(yōu)先級越高,id相同則從上往下執(zhí)行,id為NULL最后執(zhí)行

比如下邊這個查詢中只有一個SELECT關(guān)鍵字,所以EXPLAIN的結(jié)果中也就只有一條id列為1的記錄:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?=?'e038f672a8';

對于連接查詢來說,一個SELECT關(guān)鍵字后邊的FROM子句中可以跟隨多個表,所以在連接查詢的執(zhí)行計劃中,每個表都會對應(yīng)一條記錄,但是這些記錄的id值都是相同的,比如:

mysql>?EXPLAIN?SELECT?*?FROM?t1?INNER?JOIN?t2;

可以看到,上述連接查詢中參與連接的t1和t2表分別對應(yīng)一條記錄,但是這兩條記錄對應(yīng)的id值都是1。

注意:

在連接查詢的執(zhí)行計劃中,每個表都會對應(yīng)一條記錄,這些記錄的id列的值是相同的,出現(xiàn)在前邊的表表示驅(qū)動表,出現(xiàn)在后邊的表表示被驅(qū)動表。所以從上邊的EXPLAIN輸出中我們可以看出,查詢優(yōu)化器準備讓t2表作為驅(qū)動表,讓t1表作為被驅(qū)動表來執(zhí)行查詢

對于包含子查詢的查詢語句來說,就可能涉及多個SELECT關(guān)鍵字,所以在包含子查詢的查詢語句的執(zhí)行計劃中,每個SELECT關(guān)鍵字都會對應(yīng)一個唯一的id值,比如這樣:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?(SELECT?key1?FROM?t2)?OR?key3?=?'a1b6cee57a';

從輸出結(jié)果中我們可以看到,t1表在外層查詢中,外層查詢有一個獨立的SELECT關(guān)鍵字,所以第一條記錄的id值就是1,t2表在子查詢中,子查詢有一個獨立的SELECT關(guān)鍵字,所以第二條記錄的id值就是2。

但是這里大家需要特別注意,查詢優(yōu)化器可能對涉及子查詢的查詢語句進行重寫,從而轉(zhuǎn)換為連接查詢。所以如果我們想知道查詢優(yōu)化器對某個包含子查詢的語句是否進行了重寫,直接查看執(zhí)行計劃就好了,比如說:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?(SELECT?key3?FROM?t2?WHERE?t1.key1?=?'a1b6cee57a');

可以看到,雖然我們的查詢語句是一個子查詢,但是執(zhí)行計劃中t1和t2表對應(yīng)的記錄的id值全部是1,這就表明了查詢優(yōu)化器將子查詢轉(zhuǎn)換為了連接查詢。

對于包含UNION子句的查詢語句來說,每個SELECT關(guān)鍵字對應(yīng)一個id值也是沒錯的,不過還是有點兒特別的東西,比方說下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?UNION?SELECT?*?FROM?t2;

UNION子句是為了把id為1的查詢和id為2的查詢的結(jié)果集合并起來并去重,所以在內(nèi)部創(chuàng)建了一個名為的臨時表(就是執(zhí)行計劃第三條記錄的table列的名稱),id為NULL表明這個臨時表是為了合并兩個查詢的結(jié)果集而創(chuàng)建的。

跟UNION對比起來,UNION ALL就不需要為最終的結(jié)果集進行去重,它只是單純的把多個查詢的結(jié)果集中的記錄合并成一個并返回給用戶,所以也就不需要使用臨時表。所以在包含UNION ALL子句的查詢的執(zhí)行計劃中,就沒有那個id為NULL的記錄,如下所示:

mysql>?EXPLAIN?SELECT?*?FROM?t1?UNION?ALL?SELECT?*?FROM?t2;

select_type列

MySQL每一個SELECT關(guān)鍵字代表的小查詢都定義了一個稱之為select_type的屬性,意思是我們只要知道了某個小查詢的select_type屬性,就知道了這個小查詢在整個大查詢中扮演了一個什么角色

下面是官方文檔介紹:

https://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain_select_type

SIMPLE

查詢語句中不包含UNION或者子查詢的查詢都算作是SIMPLE類型,比方說下邊這個單表查詢的select_type的值就是SIMPLE:

mysql>?EXPLAIN?SELECT?*?FROM?t1;

PRIMARY

對于包含UNION、UNION ALL或者子查詢的大查詢來說,它是由幾個小查詢組成的,其中最左邊的那個查詢的select_type值就是PRIMARY,比方說:

mysql>?EXPLAIN?SELECT?*?FROM?t1?UNION?SELECT?*?FROM?t2;

從結(jié)果中可以看到,最左邊的小查詢SELECT * FROM t1對應(yīng)的是執(zhí)行計劃中的第一條記錄,它的select_type值就是PRIMARY。

UNION

對于包含UNION或者UNION ALL的大查詢來說,它是由幾個小查詢組成的,其中除了最左邊的那個小查詢以外,其余的小查詢的select_type值就是UNION,可以對比上一個例子的效果

UNION RESULT

MySQL選擇使用臨時表來完成UNION查詢的去重工作,針對該臨時表的查詢的select_type就是UNION RESULT,同樣對比上面的例子

SUBQUERY

如果包含子查詢的查詢語句不能夠轉(zhuǎn)為對應(yīng)的semi-join的形式,并且該子查詢是不相關(guān)子查詢,并且查詢優(yōu)化器決定采用將該子查詢物化的方案來執(zhí)行該子查詢時,該子查詢的第一個SELECT關(guān)鍵字代表的那個查詢的select_type就是SUBQUERY,比如下邊這個查詢:

概念解釋:

semi-join子查詢,是指當(dāng)一張表在另一張表找到匹配的記錄之后,半連接(semi-jion)返回第一張表中的記錄。與條件連接相反,即使在右節(jié)點中找到幾條匹配的記錄,左節(jié)點 的表也只會返回一條記錄。另外,右節(jié)點的表一條記錄也不會返回。半連接通常使用IN 或 EXISTS 作為連接條件

物化:這個將子查詢結(jié)果集中的記錄保存到臨時表的過程稱之為物化(Materialize)。那個存儲子查詢結(jié)果集的臨時表稱之為物化表。正因為物化表中的記錄都建立了索引(基于內(nèi)存的物化表有哈希索引,基于磁盤的有B+樹索引),通過索引執(zhí)行IN語句判斷某個操作數(shù)在不在子查詢結(jié)果集中變得非???,從而提升了子查詢語句的性能。

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?(SELECT?key1?FROM?t2)?OR?key3?=?'a1b6cee57a';

可以看到,外層查詢的select_type就是PRIMARY,子查詢的select_type就是SUBQUERY。

DEPENDENT SUBQUERY

如果包含子查詢的查詢語句不能夠轉(zhuǎn)為對應(yīng)的semi-join的形式,并且該子查詢是相關(guān)子查詢,則該子查詢的第一個SELECT關(guān)鍵字代表的那個查詢的select_type就是DEPENDENT SUBQUERY,比如下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?(SELECT?key1?FROM?t2?WHERE?t1.key2?=?t2.key2)?OR?key3?=?'a1b6cee57a';

DEPENDENT UNION

在包含UNION或者UNION ALL的大查詢中,如果各個小查詢都依賴于外層查詢的話,那除了最左邊的那個小查詢之外,其余的小查詢的select_type的值就是DEPENDENT UNION。比方說下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?(SELECT?key1?FROM?t2?WHERE?key1?=?'a1b6cee57a'?UNION?SELECT?key1?FROM?t1?WHERE?key1?=?'a1b6cee57a');

這個查詢比較復(fù)雜啊,大查詢里包含了一個子查詢,子查詢里又是由UNION連起來的兩個小查詢。從執(zhí)行計劃中可以看出來,SELECT key1 FROM t2 WHERE key1 = 'a1b6cee57a'這個小查詢由于是子查詢中第一個查詢,所以它的select_type是DEPENDENT SUBQUERY,而SELECT key1 FROM t1 WHERE key1 = 'a1b6cee57a'這個查詢的select_type就是DEPENDENT UNION。

DERIVED

對于采用物化的方式執(zhí)行的包含派生表的查詢,該派生表對應(yīng)的子查詢的select_type就是DERIVED,比方說下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?(SELECT?key1,?count(*)?as?t?FROM?t1?GROUP?BY?key1)?AS?derived_t1?where?t?>?1;

從執(zhí)行計劃中可以看出,id為2的記錄就代表子查詢的執(zhí)行方式,它的select_type是DERIVED,說明該子查詢是以物化的方式執(zhí)行的。id為1的記錄代表外層查詢,大家注意看它的table列顯示的是,表示該查詢是針對將派生表物化之后的表進行查詢的。

MATERIALIZED

當(dāng)查詢優(yōu)化器在執(zhí)行包含子查詢的語句時,選擇將子查詢物化之后與外層查詢進行連接查詢時,該子查詢對應(yīng)的select_type屬性就是MATERIALIZED,比如下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?(SELECT?key1?FROM?t2);

執(zhí)行計劃的第三條記錄的id值為2,說明該條記錄對應(yīng)的是一個單表查詢,從它的select_type值為MATERIALIZED可以看出,查詢優(yōu)化器是要把子查詢先轉(zhuǎn)換成物化表。然后看執(zhí)行計劃的前兩條記錄的id值都為1,說明這兩條記錄對應(yīng)的表進行連接查詢,需要注意的是第二條記錄的table列的值是,說明該表其實就是id為2對應(yīng)的子查詢執(zhí)行之后產(chǎn)生的物化表,然后將s1和該物化表進行連接查詢。

type列

這一列表示關(guān)聯(lián)類型或訪問類型,即MySQL決定如何查找表中的行,查找數(shù)據(jù)行記錄的大概范圍。依次從最優(yōu)到最差分別為:system > const > eq_ref > ref > range > index > ALL一般來說,得保證查詢達到range級別,最好達到ref

NULL

mysql能夠在優(yōu)化階段分解查詢語句,在執(zhí)行階段用不著再訪問表或索引。例如:在索引列中選取最小值,可以單獨查找索引來完成,不需要在執(zhí)行時訪問表

mysql>?explain?select?min(id)?from?t1;

eq_ref

primary key 或 unique key 索引的所有部分被連接使用 ,最多只會返回一條符合條件的記錄。這可能是在 const 之外最好的聯(lián)接類型了,簡單的 select 查詢不會出現(xiàn)這種 type。

在連接查詢時,如果被驅(qū)動表是通過主鍵或者唯一二級索引列等值匹配的方式進行訪問的(如果該主鍵或者唯一二級索引是聯(lián)合索引的話,所有的索引列都必須進行等值比較),則對該被驅(qū)動表的訪問方法就是eq_ref,比方說:

mysql>?EXPLAIN?SELECT?*?FROM?t1?INNER?JOIN?t2?ON?t1.id?=?t2.id;

從執(zhí)行計劃的結(jié)果中可以看出,MySQL打算將t2作為驅(qū)動表,t1作為被驅(qū)動表,重點關(guān)注t1的訪問方法是eq_ref,表明在訪問t1表的時候可以通過主鍵的等值匹配來進行訪問。

ref

當(dāng)通過普通的二級索引列與常量進行等值匹配時來查詢某個表,那么對該表的訪問方法就可能是ref

相比?eq_ref,不使用唯一索引,而是使用普通索引或者唯一性索引的部分前綴,索引要和某個值相比較,可能會找到多個符合條件的行。

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?=?'a';

可以看到type列的值是ref,表明MySQL即將使用ref訪問方法來執(zhí)行對t1表的查詢

system,const

mysql能對查詢的某部分進行優(yōu)化并將其轉(zhuǎn)化成一個常量(可以看show warnings 的結(jié)果)。用于 primary key 或 unique key 的所有列與常數(shù)比較時,所以表最多有一個匹配行,讀取1次,速度比較快。system是const的特例,表里只有一條元組匹配時為system

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?id?=?5;

ref_or_null

當(dāng)對普通二級索引進行等值匹配查詢,該索引列的值也可以是NULL值時,那么對該表的訪問方法就可能是ref_or_null,比如說:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?=?'a'?OR?key1?IS?NULL;

index_merge

一般情況下對于某個表的查詢只能使用到一個索引,但在某些場景下可以使用多種索引合并的方式來執(zhí)行查詢,我們看一下執(zhí)行計劃中是怎么體現(xiàn)MySQL使用索引合并的方式來對某個表執(zhí)行查詢的:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?=?'a'?OR?key2?=?'a';

從執(zhí)行計劃的type列的值是index_merge就可以看出,MySQL打算使用索引合并的方式來執(zhí)行對t1表的查詢。

unique_subquery

類似于兩表連接中被驅(qū)動表的eq_ref訪問方法,unique_subquery是針對在一些包含IN子查詢的查詢語句中,如果查詢優(yōu)化器決定將IN子查詢轉(zhuǎn)換為EXISTS子查詢,而且子查詢可以使用到主鍵進行等值匹配的話,那么該子查詢執(zhí)行計劃的type列的值就是unique_subquery,比如下邊的這個查詢語句:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key2?IN?(SELECT?id?FROM?t2?where?t1.key1?=?t2.key1)?OR?key3?=?'a';

可以看到執(zhí)行計劃的第二條記錄的type值就是unique_subquery,說明在執(zhí)行子查詢時會使用到id列的索引。

range

范圍掃描通常出現(xiàn)在 in(), between ,> ,<, >= 等操作中。使用一個索引來檢索給定范圍的行。

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?IN?('a',?'b',?'c');

index

當(dāng)我們可以使用索引覆蓋,但需要掃描全部的索引記錄時,該表的訪問方法就是index

掃描全表索引,這通常比ALL快一些。(index是從索引中讀取的,而all是從硬盤中讀取)

ALL

最熟悉的全表掃描

mysql>?explain?select?*?from?t2;

一般來說,這些訪問方法按照我們介紹它們的順序性能依次變差。其中除了All這個訪問方法外,其余的訪問方法都能用到索引,除了index_merge訪問方法外,其余的訪問方法都最多只能用到一個索引。

possible_keys和key列

possible_keys列顯示查詢可能使用哪些索引來查找。

explain 時可能出現(xiàn)?possible_keys?有列,而 key 顯示 NULL 的情況,這種情況是因為表中數(shù)據(jù)不多,mysql認為索引對此查詢幫助不大,選擇了全表查詢。

如果possible_keys列是NULL,則沒有相關(guān)的索引。在這種情況下,可以通過檢查 where 子句看是否可以創(chuàng)造一個適當(dāng)?shù)乃饕齺硖岣卟樵冃阅?,然后?explain 查看效果。

key列顯示mysql實際采用哪個索引來優(yōu)化對該表的訪問。如果沒有使用索引,則該列是 NULL。如果想強制mysql使用或忽視possible_keys列中的索引,在查詢中使用 force index、ignore index。

比方說下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?>?'z'?AND?key2?=?'a';

上述執(zhí)行計劃的possible_keys列的值是idx_key1,idx_key2_key3,表示該查詢可能使用到idx_key1,idx_key2_key3兩個索引,然后key列的值是idx_key3,表示經(jīng)過查詢優(yōu)化器計算使用不同索引的成本后,最后決定使用idx_key3來執(zhí)行查詢比較劃算。

需要注意的一點是,possible_keys列中的值并不是越多越好,可能使用的索引越多,查詢優(yōu)化器計算查詢成本時就得花費更長時間,所以如果可以的話,盡量刪除那些用不到的索引。

key_len列

這一列顯示了mysql在索引里使用的字節(jié)數(shù),通過這個值可以算出具體使用了索引中的哪些列

對于使用固定長度類型的索引列來說,它實際占用的存儲空間的最大長度就是該固定值,對于指定字符集的變長類型的索引列來說,比如某個索引列的類型是VARCHAR(100),使用的字符集是utf8,那么該列實際占用的最大存儲空間就是100 × 3 = 300個字節(jié)。

如果該索引列可以存儲NULL值,則key_len比不可以存儲NULL值時多1個字節(jié)。

對于變長字段來說,都會有2個字節(jié)的空間來存儲該變長列的實際長度。

當(dāng)字符串過長時,mysql會做一個類似左前綴索引的處理,將前半部分的字符提取出來做索引。

key_len計算規(guī)則如下:字符串 char(n):n字節(jié)長度 varchar(n):2字節(jié)存儲字符串長度,如果是utf-8,則長度 3n + 2 數(shù)值類型 tinyint:1字節(jié) smallint:2字節(jié) int:4字節(jié) bigint:8字節(jié)   時間類型  date:3字節(jié) timestamp:4字節(jié) datetime:8字節(jié)

比如下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?s1?WHERE?id?=?5;

由于id列的類型是INT,并且不可以存儲NULL值,所以在使用該列的索引時key_len大小就是4。

對于可變長度的索引列來說,比如下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?=?'a';

由于key1列的類型是VARCHAR(100),所以該列實際最多占用的存儲空間就是300字節(jié),又因為該列允許存儲NULL值,所以key_len需要加1,又因為該列是可變長度列,所以key_len需要加2,所以最后ken_len的值就是303。

rows列

這一列是mysql估計要讀取并檢測的行數(shù),注意這個不是結(jié)果集里的行數(shù)。

如果查詢優(yōu)化器決定使用全表掃描的方式對某個表執(zhí)行查詢時,執(zhí)行計劃的rows列就代表預(yù)計需要掃描的行數(shù),如果使用索引來執(zhí)行查詢時,執(zhí)行計劃的rows列就代表預(yù)計掃描的索引記錄行數(shù)。比如下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?>?'a';

我們看到執(zhí)行計劃的rows列的值是113,這意味著查詢優(yōu)化器在經(jīng)過分析使用idx_key1進行查詢的成本之后,覺得滿足key1 > 'a'這個條件的記錄只有113條。

ref列

這一列顯示了在key列記錄的索引中,表查找值所用到的列或常量,常見的有:const(常量),字段名(例:t1.id

ref列展示的就是與索引列作等值匹配的值什么,比如只是一個常數(shù)或者是某個列。大家看下邊這個查詢:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?=?'a';

可以看到ref列的值是const,表明在使用idx_key1索引執(zhí)行查詢時,與key1列作等值匹配的對象是一個常數(shù),當(dāng)然有時候更復(fù)雜一點:

mysql>?EXPLAIN?SELECT?*?FROM?t1?INNER?JOIN?t2?ON?t1.id?=?t2.id;

可以看到對被驅(qū)動表t1的訪問方法是eq_ref,而對應(yīng)的ref列的值是canal_manager.t2.id,這說明在對被驅(qū)動表進行訪問時會用到PRIMARY索引,也就是聚簇索引與一個列進行等值匹配的條件,于t2表的id作等值匹配的對象就是canal_manager.t2.id列(注意這里把數(shù)據(jù)庫名也寫出來了)。

有的時候與索引列進行等值匹配的對象是一個函數(shù),比方說下邊這個查詢

mysql>?EXPLAIN?SELECT?*?FROM?t1?INNER?JOIN?t2?ON?t2.key1?=?UPPER(t1.key1);

我們看執(zhí)行計劃的第二條記錄,可以看到對t2表采用ref訪問方法執(zhí)行查詢,然后在查詢計劃的ref列里輸出的是func,說明與t2表的key1列進行等值匹配的對象是一個函數(shù)。

Extra列

顧名思義,Extra列是用來說明一些額外信息的,我們可以通過這些額外信息來更準確的理解MySQL到底將如何執(zhí)行給定的查詢語句。

Using index

查詢的列被索引覆蓋,并且where篩選條件是索引的前導(dǎo)列,是性能高的表現(xiàn)。一般是使用了覆蓋索引(索引包含了所有查詢的字段)。對于innodb來說,如果是輔助索引性能會有不少提高

mysql>?EXPLAIN?SELECT?key1?FROM?t1?WHERE?key1?=?'a';

Using where

當(dāng)我們使用全表掃描來執(zhí)行對某個表的查詢,并且該語句的WHERE子句中有針對該表的搜索條件時,在Extra列中會提示上述額外信息。比如下邊這個查詢

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?name=?'a1b6cee57a';

Using where Using index

查詢的列被索引覆蓋,并且where篩選條件是索引列之一但是不是索引的前導(dǎo)列,意味著無法直接通過索引查找來查詢到符合條件的數(shù)據(jù)

mysql>?EXPLAIN?SELECT?id?FROM?t1?WHERE?key3=?'a1b6cee57a';

NULL

查詢的列未被索引覆蓋,并且where篩選條件是索引的前導(dǎo)列,意味著用到了索引,但是部分字段未被索引覆蓋,必須通過“回表”來實現(xiàn),不是純粹地用到了索引,也不是完全沒用到索引

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?key2=?'a1b6cee57a';

Using index condition

與Using where類似,查詢的列不完全被索引覆蓋,where條件中是一個前導(dǎo)列的范圍;

mysql>??EXPLAIN?SELECT?*?FROM?t1?WHERE?key1?like?'1';

Using temporary

在許多查詢的執(zhí)行過程中,MySQL可能會借助臨時表來完成一些功能,比如去重、排序之類的,比如我們在執(zhí)行許多包含DISTINCT、GROUP BY、UNION等子句的查詢過程中,如果不能有效利用索引來完成查詢,MySQL很有可能尋求通過建立內(nèi)部的臨時表來執(zhí)行查詢。如果查詢中使用到了內(nèi)部的臨時表,在執(zhí)行計劃的Extra列將會顯示Using temporary提示,比方說這樣:

name沒有索引,此時創(chuàng)建了張臨時表來distinct

mysql>?explain?select?distinct?name?from?t1;

key1建立了idx_key1索引,此時查詢時extra是using index,沒有用臨時表

mysql>?explain?select?distinct?key1?from?t1;

Using filesort

mysql 會對結(jié)果使用一個外部索引排序,而不是按索引次序從表里讀取行。此時mysql會根據(jù)聯(lián)接類型瀏覽所有符合條件的記錄,并保存排序關(guān)鍵字和行指針,然后排序關(guān)鍵字并按順序檢索行信息。這種情況下一般也是要考慮使用索引來優(yōu)化的。

name未創(chuàng)建索引,會瀏覽t1整個表,保存排序關(guān)鍵字name和對應(yīng)的id,然后排序name并檢索行記錄

mysql>?explain?select?*?from?t1?order?by?name;

key1建立了idx_key1索引,此時查詢時extra是using index

mysql>?explain?select?*?from?t1?order?by?key1;

Using join buffer (Block Nested Loop)

在連接查詢執(zhí)行過程中,當(dāng)被驅(qū)動表不能有效的利用索引加快訪問速度,MySQL一般會為其分配一塊名叫join buffer的內(nèi)存塊來加快查詢速度,也就是我們所講的基于塊的嵌套循環(huán)算法,比如下邊這個查詢語句:

mysql>?EXPLAIN?SELECT?*?FROM?t1?INNER?JOIN?t2?ON?t1.key3?=?t2.key3;

No tables used

當(dāng)查詢語句的沒有FROM子句時將會提示該額外信息,比如:

mysql>?EXPLAIN?SELECT?1;

Impossible WHERE

查詢語句的WHERE子句永遠為FALSE時將會提示該額外信息,比方說:

mysql>?EXPLAIN?SELECT?*?FROM?t1?WHERE?1?!=?1;

參考:

https://dev.mysql.com/doc/refman/5.7/en/explain-output.html#explain-extra-information


往期推薦

前瞻:在 Java 16 中會帶來哪些新特性?

高可用 Prometheus 的常見問題

Fastjson < 1.2.68版本反序列化漏洞分析篇

音效摸魚還不夠爽?試試IDE里打幾盤魂斗羅?

一個讓你敲代碼的同時,找回童年樂趣的 IntelliJ 插件


掃一掃,關(guān)注我

一起學(xué)習(xí),一起進步

每周贈書,福利不斷

深度內(nèi)容

推薦加入


最近熱門內(nèi)容回顧? ?#技術(shù)人系列


瀏覽 75
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

感谢您访问我们的网站,您可能还对以下资源感兴趣:

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 日韩熟妇无码中文字慕| 日韩在线视频中文字幕| 国产精品伦子伦免费视频| 一区二区三区欧美| 中文精品字幕人妻熟女| 日韩精品一二区| 九九久久久久| 亚洲视频欧洲视频| 亚洲成人黄色电影| BBW老熟女BBw| 天天射天天射| 国产人体视频| 国产A片一区| 青草伊人网| 无码视频免费看| 很很干在线视频| 日批动态图| 高清无码网| 亚洲综合免费观看高清完整版在线| 久久99精品视频| 国产精品无码在线| 可以在线观看的AV| 中文字幕在线永久| 亚洲无码理论片| 欧美激情无码炮击| 中文字幕视频2023| 插插菊花综合网| 天天爽天天搞| 免看一级a毛片一片成人不卡| 日韩免费性爱视频| 看国产毛片| 福利一区二区| 五月伊人网| 91好爽| 精品人妻无码一区二区三区四川人| 成人免费视频一区二区三区 | 69无码| 日日摸日日碰| 黄色影院在线观看| 亚洲日韩欧美在线观看| 麻豆91精品91久久久| 国产又爽又黄视频| 亚洲在线观看网站| 日本一级婬片A片免费看| 亚洲成人一区| 天天拍夜夜操| 亚洲区视频| 天天插天天狠天天透| 一区二区三区四区五区无码| 久草在| 51国产视频| 国产美女做爱| 国产91综合一区在线观看| 99精品在线| 乱伦A片| www.yw尤物| 亚洲成人精品视频| 开心五月激情婷婷| 男人天堂新地址| 老司机精品| 欧美+日产+中文| 欧美视频A| 黄色视频在线免费观看高清视频| 日韩精品在线视频| 国产精品无码在线观看| 影音先锋亚洲资源| 午夜成人视频| 97午夜| 青青青国产| 亚洲一区欧美| 亚洲V在线| 成人网中文字幕| 色资源在线观看| aⅴ免费观看| 人人操人人爱人人摸| 国产精品无码永久免费A片| 久久久国产探花视频| 97在线观看视频| 久免费视频| 成人视频免费网站| 日韩av一区二区三区| 伊人成人小说| 91草视频| 国产娇小13videos糟蹋| 成人精品三级麻豆| 日韩精品一区二区三区黄冈站长 | 97在线观看免费视频| 偷拍亚洲欧美| 久久婷婷综合网| 国产色情视频在线观看| 成人无码久久| 亚洲天堂网在线视频| 97人人人人人人| 国产精品码一本A片| 亚洲日韩在线中文字幕| www.污污污| 色老板网址| 亚洲无码。| 亚洲伊人影院| wwwxx国产| 精品久热| 中文字幕国产在线观看| 色哟哟视频| 丁香六月激情婷婷| 精品在线播放视频| 人成在线视频| 狠狠色噜噜狠狠狠888米奇视频| 久久婷婷网站| 99久久久无码国产精品性波多| 国产精品美女在线观看| 欧美h在线观看| 性BBW| 一级片黄片| 一区免费在线| 亚洲成人AAAAA| 免费观看在线无码视频| 在线观看亚洲一区| 69亚洲精品| 毛片导航| 五月天乱伦小说| 中文字幕熟女| 欧美精品一卡| 91在线免费视频观看| 九九色| 岛国片资源| 色婷婷色五月| 国产黄色视频免费观看| 五月丁香成人网| 先锋影音资源av| 国产又爽又黄免费网站校园里| 97欧美精品人妻系列| 亚洲第二页| 久久ww| 中文字幕无码不卡| 精品人妻一区二区三区四区不卡在| 国产一级美女操逼视频免费播放| 日韩欧美视频一区国产欧美在线 | 狠狠狠狠狠狠狠| caopro| 中文字幕精品亚洲熟女| 天天爽视频| 一区二区三区在线观看视频| 怡红院成人网| 强伦轩人妻一区二区三区最新版本更新内容 | 688AV秘无码一区二区| 久久成人久久爱| 午夜老司机福利一二三区| 国产亚洲99久久精品熟女| 无码视频久久| 色屁屁草草影院ccyycom| 91色综合| 国产成人av在线| 成人无码区免费AV片| 天天干天天操| 午夜艹| 淫色综合网| 亚洲无码A区| 日韩在线视频第一页| 日韩久久婷婷| 午夜亚洲福利| 亚洲成人久久久| www.17c嫩嫩草色蜜桃网站| 天天做天天爱天天爽| 麻豆91视频| 内射网站| 久久99久久视频| 好爽~要尿了~要喷了~同桌| 久久久WWW成人免费无遮挡大片| 在线观看精品视频| 伦理被部长侵犯HD中字| 草草久久久无码国产专区的优势| 91探花在线观看| 少妇搡BBBB搡BBBB毛多多| 俺去俺来也在线www色官网| 日本黄色影视| 成人做爰黄级A片免费看土方| 午夜精品久久久久久久91蜜桃| 久久午夜无码鲁丝| 亚洲精品视频免费看| 欧美毛片A| 毛多水多丰满女人A片| 肏屄在线视频| 亚洲无码播放| 4080yy午夜理论片成人| 91破处网站| 久久国产亚洲| 26uuu亚洲| 2018天天干天天操| 天天插天天干| 午夜成人福利视频在线观看| 在线免费黄色网址| 美女特黄视频| 高清无码视频观看| 97超碰人妻| av麻豆| 午夜国产精品AV| 日本绿色精品视频| 青青草黄色视频| 日韩无码影视| 色久在线| 精品第一页| 九九九九AV| 久久青娱乐| 日韩WWW| www.激情五月天| 91成人精品| 蜜挑视频一区二区三区| 老熟女--91XX| 特级西西人体444www高清| 超碰9999| 欧美日韩高清在线| 高清无码免费| 大香蕉尹人在线视频| 亚洲专区区免费| 黄色在线视频网站| 无码高清一区二区| 一级黄色电影A片| 五月丁香成人电影| 日韩美女免费视频| 国产成人亚洲综合A∨婷婷| 中文字幕在线观看视频www| 国产十欧洲十美国+亚洲一二三区在线午夜 | 色呦呦一区二区三区| 成人网站在线免费| 青青草免费福利视频| 人妻人操| 香蕉AV777XXX色综合一区| 中文字幕亚洲综合| 黄片免费观看| 日韩久操| 制服无码| 亚洲成人性爱网| 亚洲免费在线视频| A片操逼| 国产成人精品av在线观看| 日本不卡视频在线| 黄片免费大全| 国产高潮视频在线观看| 蜜桃av无码一区三区| 久久久久性爱| 欧美精品一区二区三区成人片在线| 人人插人人澡| 天天天天日天天干| 青青草视频黄| 日韩高清国产一区在线| 伊人久久久久久久久久久| 中文字幕在线视频第一页| 亚洲无码视频在线看| 国产无码一区二区| 久久久久久亚洲AV黄床| 精品人妻一区二区三区在线视频不卡 | 日韩人妻无码一区二区三区| 日韩国产AV| 精国产品一区二区三区A片| 久色99| 东京热无码免费视频| 成人A毛片| 亚洲日韩在线a成| 在线国产91| 成年人观看视频| 久草在在线视频| 无码电影在线播放| 张柏芝BBw搡BBBB槡BBBBHDfree | 中文区中文字幕免费看| 无码专区一区二区三区| 韩日高清无码| 国产毛片一区| 亚洲精品视频在线播放| 91少妇精品| 国产aaaaaaaaaa| 日韩操逼网站| 日本高清视频九区| 亚洲AV无码乱码国产| 99久在线精品99re8| 人人草人人干| 蜜乳av红桃嫩久久| 国产高清视频在线播放| 国产精品无码怀孕软件| 成人性生交大片免费看小芳| AV乱伦小说| 蜜桃传媒一区二区亚洲AV| 欧美日韩国产a| 大香蕉大香蕉网| 91色伦| 日韩精品久久| 色久悠悠综合网| 日日躁夜夜躁| 日韩欧美色图| 国产免费黄色视频网站| 五月丁香婷婷激情| 六月伊人| 日韩无码你懂的| 亚洲成人久久久| 日韩在线观看| 亚欧精品久久久| HEZ-502搭讪绝品人妻系列| 色色激情视频| 日日搔AV一区二区三区| A片在线视频| 无码xx| 97久久一区二区| 欧美肏逼视频| aaa精品| 秋霞福利网| 日韩欧美一区二区三区不卡| 成人免费操| 成人av免费在线观看| 二区三区不卡| 国产免费无码视频| 日韩精品免费| 久久不雅视频| 1024国产| 午夜无码鲁丝午夜免费| 国产乱伦一区| 一区二区三区在线观看视频| 蝌蚪窝在线视频观看| 中文字幕不卡视频| 日韩大片免费观看| 暖暖日本在线| 91在线精品无码秘入口苹果| 11一12周岁女毛片| 欧美天堂在线观看| 亚洲免费观看高清视频| 国产乱码一区二区三区的区别| 亚洲少妇视频| 国产综合无码| 国产黄色视频免费观看| 另类视频区| 国产做爱| 亚洲一区欧美二区gay| 69视频在线播放| 东京热精品视频| 九一成人网| 18国产免费视频在线观看| 安徽妇搡BBBB搡BBBB,另类老妇| 成人日皮视频| 婷婷久久综合| 国产精品宾馆在线| 久草福利在线观看| 人人妻人人躁人人DVD| 亚洲三级片视频| 一本色道久久综合狠狠躁| 亚洲精品色| 精品AV无码一区二区三区| 亚洲第一视频在线观看| 综合+++夜夜| 人人cao| 91狠狠综合久久| 91吴梦梦无码一区二区| 特级西西444www高清| 在线看毛片网站| 天堂在线无码| 日韩av在线不卡| 黄色一级免费看| 麻豆91网站| 久久这里精品| 国产激情艹逼| 天天夜夜操操| 日本成人性爱视频网站一区| 日韩人妻精品中文字幕专区不卡| 婷婷五月天激情网| 摸BBB搡BBB搡BBBB| AV中文在线| 亚洲无码一区在线| AV资源在线| 国产精品av在线播放| 久久久久成人电影| 桃花岛tⅴ+亚洲品质| 精品视频一区二区三区| 人妻在线免费视频| 中文字幕精品在线| 九色PORNY国产成人| 欧美激情一区二区| 久操网在线| 国产人人干| 中文字幕人妻在线中文乱码怎么解决| 丰满人妻一区二区三区| 大学生一级特黄大片| 伊人大香蕉网| 黄色免费一级片| 亚洲视频一区| 九九九无码| 最新国产激情视频| 中文在线a∨在线| 大香焦草久| 国产精品99久久久久久成人| 裸体黄色一极大片| 性无码一区二区| 夜夜夜操操操| 99免费精品视频| 操屄视频免费观看| 五月婷婷av| 黄色录像毛片| 丰满人妻一区二区三区| 亚洲AV永久无码成人| 久久电影五月天| 日韩午夜电影| 在线观看免费视频无码| 伊人福利导航| 亚洲日韩在线视频观看| 99自拍视频| 九九九九九精品| 北条麻妃视频在线| 黄色工厂这里只有精品| 99精品六月婷婷综合在线| A片动漫| 91香蕉国产在线观看| 亚洲无码专区在线观看| 中国操逼电影| 日本一区二区三区免费视频| 亚洲a电影| 亚洲AV成人片色在线观看麻豆 | 特级特黄A级高潮播放| 91女人18片女毛片60分钟| 成人动漫免费观看| 人人操人人插| 高清中文字幕在线A片| 无码国产精品一区二区| 一区二区三区久久久久〖网:.〗| wwwxx在线观看| 国产最新视频| 天天日天天草天天干| 加勒比综合在线| 草逼动态图| 日韩美女毛片| 成人无码日韩| 国产又粗又大又爽| 91成人18| 黄色电影A| 日韩激情无码视频精选| 亚洲在线视频免费观看| 草逼综合网| 国产熟妇搡BBBB搡BBBB毛片 | www亚洲视频| 国产欧美一区二区三区视频| 羞羞视频com.入口| 丁香六月婷| 玖玖成人| 不卡无码高清| 广西少妇BBwBBwBBw| 狠狠干狠狠撸| 91麻豆精品在线观看| 青草碰| 操日本逼| 国产www视频| 91精品又粗又猛又爽| 自拍做爱视频| 69AV网站| 99久久久| 黄色电影一级片| 国产精品一卡二卡三卡| 国产熟妇婬乱一区二区| 亚洲大片免费看| 久99在线视频| 图片区视频区小说区| 欧美一级A片在线观看| 亚洲AV三级片| 天天澡日日久| 亚洲高清无码中文字幕| 蜜臀久久精品久久久久| 无码国产精品一区二区| 日韩美女久久| 亚洲AV无码一区二区三竹菊 | 欧美人人操| 人人做人人操| 国产精品3| 色婷婷导航| www.97色| A视频免费在线观看| 久久五月婷| 小视频你懂的| 在线91网站| 超碰乱伦| 亚洲av无码乱码| 尹人大香蕉网| www.91av| 91久久| 蜜臀AV在线观看| 色94色.欧美.setu| 久色国产| 婷婷欧美日韩| 黄色自拍视频| 大香蕉操逼视频| 久久草在线播放| 成人做爱黄片| 无码成人AV在线看免费| 黄色一及片| 在线观看av资源| 日韩免费高清在线视频| 一区二区免费看| 最新免费一区二区三区| 国产剧情自拍| 插菊综合网| 91无码人妻一区二区| 在线观看亚洲无码视频| 亚欧精品久久久久久久久久久| 日韩高清无码人妻| 加勒比一区二区三区| 6969电视影片最新更新| 免费高清无码在线观看| 北京熟妇搡BBBB搡BBBB| 精品国产123| 国产成人高清| 亚洲中文字幕高清| 欧美精品乱码99久久蜜桃| 欧美操B在线| 亚洲一级Av无码毛片久久精品| 波多野结衣视频一区| 大肉大捧一进一出免费阅读| 国产一区二区做爱| 成人午夜无码福利视频| 大香蕉a片| 日韩三区在线| 中国老太卖婬HD播放| 97人人爽人人爽人人人| 2024天天操| 台湾色综合| 苗条一区小视频| 俺去啦在线| 亚洲精品女人久久久| 伊大香蕉在线| 黄色片大香蕉| 99啪啪| 久操成人| 日韩高清成人无码| 久久青草影院| 91爱搞搞| 国产又爽又黄免费视频免费| 人人妻人人超| 97亚洲国产| 东北成人毛片| 欧美色道| 日韩成人黄色电影| 成人美女视频| 在线免费观看av片| 日本伊人在线综合视频| 强伦轩人妻一区二区电影| 国产亚洲欧美精品综合在线| 国产大屌| 一级a在线| 国产又爽又黄免费视频网站| 俺来也俺就去www色情网| 可以在线观看的AV| 久久先锋| 鸡巴在线观看| 亲子乱婬一级A片| 免费看黃色AAAAAA片| 久久婷婷网| 337P粉嫩大胆噜噜噜55569| 欧美日韩一区二区三区四区五区六区 | 自拍一区在线观看| 99热这里有精品| AAA免费视频| 这里只有精品在线观看| 丁香六月婷婷综合缴| 444444在线观看免费高清电视剧木瓜一 | 亲子伦视频一区二区三区| 黄色片成人| 伊人影院麻豆| 淫荡少妇美红久久久久久久久久 | 日韩精品成人av| 伊人久久久久久久久久久| 黄色3A片在线观看| 日韩超碰| 日韩五月天| 韩国无码片| 亚洲少妇免费| 激情小视频在线观看| 九九色在线视频| 懂色av| 国产精品一区二区视频| 无码一| 亚洲操B视频| 免费在线观看AV网站| 91在线无码精品入口电车| 人妻少妇91精品一区黑人| 中文字幕在线观看一区| 人妻骚逼| 2025AV天堂网| 天天视频国产| 无码乱码在线观看| 人人操日本| 亚洲啊V| 午夜毛片| 99热最新网址| 婷婷AV在线| 精品91视频| 久久精品视频一区| 国产真实乱婬A片久久久老牛| 在线91网站| 免费黄色大片网站| 91成人片| 亚洲vs无码秘蜜桃少妇| 国产女人18毛片精品18水| 国产AV日韩AV| aⅴ在线| 国产精品国产精品国产专区不52| 狠狠搞狠狠操| 3DAV一区二区三区动漫| 视色视频在线观看| 无码性爱视频| 悠悠色影院| 五月天社区| 欧美一级性爱视频| 69国产在线| 影音先锋乱伦| 亚洲三级无码在线| 黄色小说在线看| 一级a一级a爰片免费免免在线| 日韩在线中文字幕亚洲| 亚洲五月婷婷| 欧美色图在线视频| 伊人亚洲综合| 中文字幕第6页| 456亚洲影院| 免费AV在线播放| 日韩成人黄色| 亚洲砖区区免费| 欧美亚洲视频在线观看| 亚洲精品在线观看免费| 欧美黄片在线免费看| 国产精品视频瘾无码| 一本到在线观看午夜剧场| 天天操操| 亚洲色图在线观看| 操逼逼网| 国产做受91一片二片老头| 黄片免费观看网站| 四川BBB搡BBB搡多人乱| 成人无码日韩| 18久久| 亚洲午夜在线| 亚洲人成小说| 成人爽爽视频| 免费观看高清无码| 日韩中文字幕av在线| 久草com| 国产成人69| 2026AV天堂网| 91国在线视频| 超碰91人人操| 中文字幕AV免费观看| 麻妃无码| 日屄在线观看| 日本女人高潮视频| 国产日本在线视频| 午夜操一操一级| 中文字幕东京热加勒比| 三级乱伦86丝袜无码| 天天色天天日| 操东北女人| 麻豆一级片| 亚洲成人免费视频| 97毛片| 欧美成人黄色电影| 人人看人人摸人人操| 99在线免费观看| 久久思思热| 欧美激情一区二区三区| 永久免费黄色| 国精产品一区二区三区黑人和中国 | 欧洲亚洲无码| 色男人的天堂网| 97免费在线观看视频| 91在线视频免费播放| 欧美性xxxxx| 亚洲一区高清无码| 毛片A片免费看| AV无码一区| 翔田千里无码免费播放| 国产精品秘国产精品88| 久久久123| 免费在线观看视频a| 欧美国产精品一区二区三区| 内射网站在线看| 九九色热| 国产精品av在线播放| 99国产在线观看免费视频| 韩国三级HD久久精品| 欧美黄色性爱| 成人性爱在线播放| 狼人香蕉网| 神马午夜| 成人一级黄片| 亚洲超碰在线| 黄片二区| 影音先锋亚洲资源| 亚洲久久视频| 成人无码精品| 在线观看无码视频| 北条麻妃一区二区三区-免费免费高清观看 | 搡老熟女-91Porn| 日韩在线视频中文字幕码无| 精品少妇一区| 久久永久视频| 欧美亚洲日本| 亚洲无码视频免费在线观看| 黄色av天堂| 久久国产无码| 91sese| 欧美自拍性爱视频| 蜜桃av秘无码一区二区三| 久久久久三级| 久久五月天视频| 日韩成人无码精品| 特写毛茸茸BBwBBwBBw| 亚洲AV成人无码精品区| 97人妻人人澡人| 蜜臀久久99精品久久久兰草影视 | 91成人18| 人人看人人干| 日韩无码人妻一区二区三区| 99热思思| 色婷婷在线视频播放| 黄色片亚洲| 69综合| 国产不卡一| 97超碰伊人| 麻豆自拍偷拍| 黄色影片在线观看| 国产亚洲欧美在线| 丁香五月在线观看| 成人在线免费观看国产| 91人妻无码一区二区久久| 一级黄色影院| yjizz国产| 日韩a在线观看| 日韩欧美在中文| 亚洲图片小说区| 麻豆国产精品| www.sese| 亚洲777| 怡春院综合| 成年人视频在线观看免费| 精品国产香蕉| 激情五月婷婷综合| 日皮视频在线免费观看| 中文熟女| 91绿帽人妻-ThePorn| 蜜臀色欲AV无码人妻| 人人摸人人看| 国内综合久久| 亚洲欧洲精品成人久久曰影片| 国产AV直播| www.18av| 亚洲春色一区二区三区| 九色PORNY国产成人| 熟妇导航| 国产欧美一区二区三区视频| 麻豆毛片| 第四色视频| 丁香五月亚洲| 在线免费看A片| 91超碰在线免费观看| 国产一级在线| 国产操女人| 五月丁香色色网| 69国产精品视频免费观看| 99久久99久久精品免费看小说。 | 玖玖成人| 日韩中文毛片| 婷婷中文| 婷婷国产成人精品视频| 成人AV十八亚洲二区| 一级色情片| 国产高清无码在线| 亚洲无码AV麻豆| 性爱AV网| 2025无码视频| 再深点好爽灬轻点久久国产| 久久男人网| 五月天婷婷影院| 99大香蕉视频| 天天日天天日天天操| 99热这里只有精品7| 高清无码在线不卡| 人人操人人插| 丝袜制服中文字幕无码专区| 99精品一区二区| 91精品国产成人做爰观看奶头 | 操逼视频国产91| 蜜桃影院| 一级a一级a爰片免费| 亚洲AV激情无码专区在线播放 | AV无码资源| 亚洲无码中文视频| 日韩在线视频中文字幕码无| 老司机av| 天天色图| 99久久久久久久无码| 欧美色女人| 久久久精品午夜人成欧洲亚洲韩国| 日韩欧美中文| 日韩精品成人| 久久黄色视频免费看| 少婦揉BBBB揉BBBB揉| 欧美一级婬片AAAAAA片| 青娱乐91| 日韩免费视频| 免费观看黄色一级片| 亚洲AV无码成人精品区在线欢看 | 精东AV| 九九这里有精品| 日韩插泄| 日韩黄色免费网站| 欧美日韩亚洲综合| 成人av一区| 日韩aaa| 伊人偷拍视频| 亚欧洲精品在线视频| 可以免费看的av| 一级黄色A片| 欧美成人午夜影院| 99亚洲天堂| 亚洲毛片视频| 欧美色综合| 蜜芽成人在线视频| 大香蕉尹人在线观看| 亚洲无码视频网站| 亚洲国产成人精品女人久久久| 肉色超薄丝袜脚交一区二区| 日韩精品成人av| 靠逼免费视频| 先锋影音资源站| 自拍偷拍1| 2021天天操| 久久性爱网| 人人操AV在线| 清清草在线视频| 国产伊人影院| 国产精品成人无码免费| 日韩精品一区二区三免费视频| 成人免费视频一区二区三区| 亚洲香蕉在线视频| 久久精品中文字幕| 日韩精品毛片一区二区视频免费| 91人妻人人澡人人爽人人玩| 中文字幕国产av| 一区无码| 精品久久无码中文字幕| 内射免费网站| 免费A级毛片在线播放不收费| 黄色激情AV| 午夜第一页| 国产九九九九| 麻豆av人人乐| 欧美色女人| 欧美v| 无码人妻一区二区三区免费九色| 夜夜撸夜夜| sm在线观看| 91精品一区二区| 日韩无码人妻系列| 日产精品久久久一区二区| 丁香婷婷一区二区三区| 91爱爱| 欧美综合婷婷| 日本熟妇一区二区三区| 成人黄色视频网站| 日韩第一色| 亚洲高清无码在线免费观看| 亚洲女人被黑人巨大的原因| 日日综合网| 国产传媒精品| 无码视频免费在线观看| 欧美日韩亚洲一区二区三区| 91国产乱伦| 国产高清视频在线观看| 最新日韩中文字幕| 我和岳m愉情XXXⅩ视频| 日韩在线视频播放| AV青青草原| 波多野结衣一级婬片A片免费下载| AAA片| JIZZJIZZ国产精品喷水| 欧美黄色精品| 日韩精品人妻中文字幕蜜乳| 青青草综合视频| 日本欧美在线播放中文| 国产精品久久久久野外| 国产小毛片| 激情免费视频| 国产97视频| 91丨精品丨国产丨丝袜| 久久99久久99久久99| 日韩中文字幕在线视频| 少妇一级婬片内射视频| 二区在线观看| 色欲影视插综合一区二区三区| 欧美污视频在线观看| 日韩一级电影在线观看| 精产国品一区二区| 亚洲欧美日韩另类| 午夜激情视频在线观看| 肉色超薄丝袜脚交一区二区 | 天天射夜夜操| 懂色aV| 国内自拍网站| 无码中文字幕在线播放| 日本久久久久久久久视频在线观看 |