精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

解讀 MySQL Explain 關(guān)鍵字:優(yōu)化查詢執(zhí)行計劃的實(shí)用指南

數(shù)據(jù)庫 MySQL
本文將為您提供有價值的見解和實(shí)用的技巧,助您在MySQL數(shù)據(jù)庫中更好地利用EXPLAIN關(guān)鍵字,優(yōu)化查詢性能,提升數(shù)據(jù)庫應(yīng)用的效率和穩(wěn)定性。

在MySQL數(shù)據(jù)庫中,優(yōu)化查詢性能是每個開發(fā)人員和數(shù)據(jù)庫管理員都需要面對的重要挑戰(zhàn)之一。其中,EXPLAIN關(guān)鍵字是一個強(qiáng)大的工具,可以幫助我們深入了解MySQL是如何執(zhí)行查詢的,以及如何優(yōu)化查詢性能。

本文將深入探討MySQL中的EXPLAIN關(guān)鍵字,探究其背后的工作原理和輸出信息含義。通過本文的闡述,您將了解如何解讀EXPLAIN的輸出結(jié)果,優(yōu)化查詢執(zhí)行計劃,提升數(shù)據(jù)庫性能,以及避免常見的查詢性能陷阱。

無論您是初學(xué)者還是有經(jīng)驗(yàn)的數(shù)據(jù)庫專家,本文都將為您提供有價值的見解和實(shí)用的技巧,助您在MySQL數(shù)據(jù)庫中更好地利用EXPLAIN關(guān)鍵字,優(yōu)化查詢性能,提升數(shù)據(jù)庫應(yīng)用的效率和穩(wěn)定性。

詳解explain對應(yīng)關(guān)鍵字

通過explain關(guān)鍵字可以獲取我們給定查詢SQL經(jīng)由成本和規(guī)則優(yōu)化后的執(zhí)行計劃,通過這個計劃我們可以得到查詢語句實(shí)際的工作步驟,這里我們就針對這關(guān)鍵字得出的執(zhí)行計劃的每一列都進(jìn)行介紹。

為了更直觀的演示explain各個關(guān)鍵字段的信息,我們這里不妨通過兩張表針對每一種訪問方式進(jìn)行講解,對應(yīng)數(shù)據(jù)表的DDL如下所示,可以看到筆者創(chuàng)建了一張s1表,其中:

  • id作為主鍵。
  • key1作為普通索引。
  • key2是唯一索引。
  • key_part1+key_part2+key_part3構(gòu)成唯一索引。

s2與s1結(jié)構(gòu)一致,這里就不多做介紹,對應(yīng)DDL語句如下所示:

CREATE TABLE s1
(
    id           INT NOT NULL AUTO_INCREMENT,
    key1         VARCHAR(100),
    key2         INT,
    key3         VARCHAR(100),
    key_part1    VARCHAR(100),
    key_part2    VARCHAR(100),
    key_part3    VARCHAR(100),
    common_field VARCHAR(100),
    PRIMARY KEY (id),
    KEY          idx_key1 (key1),
    UNIQUE KEY idx_key2 (key2),
    KEY          idx_key3 (key3),
    KEY          idx_key_part(key_part1,key_part2,key_part3)
) Engine = InnoDB CHARSET = utf8;

id字段

針對每一個select語句都會為其分配一個id字段,該id就代表的每一個select語句的執(zhí)行計劃信息。

我們先說個簡單的例子,針對下面這句單表執(zhí)行的語句,它就只有一行數(shù)據(jù),所以就只有一個id為1的執(zhí)行計劃:

explain select * FROM  s1 WHERE s1.common_field =1;

我們再來一個union合并查詢:

explain select * FROM  s1 union select * from s2;

從執(zhí)行計劃可以看到s1的id為1,s2的id為2,分別進(jìn)行了一個select查詢:

需要注意的是連接查詢的驅(qū)動表和被驅(qū)動表的id都是一樣的,出現(xiàn)在前面的是驅(qū)動表,而后面的就是被驅(qū)動表:

explain select * from s1 inner join s2 on s1.id =s2.id ;

從執(zhí)行計劃就可以看出,s1就是驅(qū)動表,s2就是被驅(qū)動表:

我們再來一個特殊的SQL,這句原本是子查詢,正常情況下應(yīng)該是s1表的id為1,s2表的id為2:

explain select * FROM s1  where key1 in (select key3 from s2 );

但是SQL優(yōu)化器經(jīng)過分析發(fā)現(xiàn)這句可以被優(yōu)化為連接查詢,即下面這句SQL:

explain select * from s1 inner join s2 on s1.key1 =s2.key3 ;

所以執(zhí)行計劃就顯示id是一樣的,且s1作為驅(qū)動表,s2作為被驅(qū)動表:

table字段

table字段含義比較簡單,它表示當(dāng)前查詢計劃所針對的數(shù)據(jù)表,例如下面這個簡單查詢語句:

explain select * FROM  s1 WHERE s1.common_field =1;

它所查詢的就是針對s1表:

而下面這句涉及連接查詢,所以從執(zhí)行計劃中也能看出不同執(zhí)行計劃所針對的表:

explain select * from s1 inner join s2;

可以看到驅(qū)動表s1進(jìn)行全表掃描,而被驅(qū)動表s2是通過hash join進(jìn)行連接查詢:

select_type

select_type決定了你的SQL涉及的查詢類型,常見的有:

(1) SIMPLE:簡單查詢,如下所示,可以看到簡單的SQL語句就屬于這種查詢類型

explain select * from s1

對應(yīng)的執(zhí)行計劃如下所示:

(2) PRIMARY:涉及關(guān)聯(lián)或者子查詢的語句對應(yīng)左邊的語句就是PRIMARY,如下SQL所示,可以看到對應(yīng)的u表的查詢就可以作為PRIMARY語句:

explain select * FROM  s1 union select * from s2;

我們查看執(zhí)行計劃的截圖,可以看到涉及這種嵌套查詢的SQL左邊的SQL就是PRIMARY:

(3) UNION:從執(zhí)行計劃的截圖就可以看出union關(guān)鍵字后面的SQL就屬于union

explain select * FROM  s1 union select * from s2;

對應(yīng)執(zhí)行計劃如下圖所示:

(4) UNION RESULT:包含union的處理結(jié)果集,在union和union all語句中,基于其它查詢結(jié)果進(jìn)行合并(可能有去重的過程),需要通過一個臨時表才能完成的操作就是UNION RESULT也就是我們上述那句SQL的第三步。

(5) DEPENDENT SUBQUERY:如下SQL所示,在SQL優(yōu)化器明確指明子查詢無法轉(zhuǎn)為半連接查詢的情況下,第一個select的子查詢對應(yīng)的select type就是DEPENDENT SUBQUERY:

explain select * from s1 where s1.common_field in (SELECT id from s2 WHERE s1.common_field=s2.common_field) or key3='a';

對應(yīng)的執(zhí)行計劃如下所示,可以看到s2的執(zhí)行類型就是DEPENDENT SUBQUERY:

(6) DEPENDENT UNION:如下SQL所示,在涉及union的子查詢中有無數(shù)個小查詢,除去union的左邊哪個小查詢,其余的都是DEPENDENT UNION

explain select * from s1 WHERE key1 IN (SELECT key1 from s1 union SELECT key1 from s2)

這一點(diǎn),從執(zhí)行計劃中就可以看出,子查詢內(nèi)部的s2查詢的類型就是DEPENDENT UNION

(7) DERIVED:在FROM列表中包含的子查詢被標(biāo)記為DERIVED(衍生);MySQL會遞歸執(zhí)行這些子查詢, 把結(jié)果放在臨時表里:

explain SELECT * from (select COUNT(*)  from student as a) b

對應(yīng)的我們可以在執(zhí)行計劃中印證這一點(diǎn):

type字段(重點(diǎn))

type決定了進(jìn)行SQL查詢的時的訪問方法,該字段對于SQL執(zhí)行性能分析有著至關(guān)重要的參考價值:

(1) system:表中只有一行或者空表,即存儲引擎中統(tǒng)計的數(shù)據(jù)是正確的。

(2) const:基于聚簇索引或者非空的唯一二級索進(jìn)行定位數(shù)據(jù),時間復(fù)雜度為O(1),這種高速的常量級查詢我們就可以稱為const:

explain select * FROM  s1 WHERE id=1;

對應(yīng)執(zhí)行計劃如下:

(3) eq_ref:該查詢意味著進(jìn)行關(guān)聯(lián)查詢時,被驅(qū)動表內(nèi)部走了聚簇索引或者非空的二級索引查詢:

explain SELECT * FROM s1 inner join  s2 on s1.id=s2.id;

(4) ref:通過那些非唯一的二級索引進(jìn)行精準(zhǔn)定位,這種在二級索引區(qū)間構(gòu)成一個掃描區(qū)間進(jìn)行定位,然后再通過回表獲取所有數(shù)據(jù)的執(zhí)行就是ref:

explain select * from s1 WHERE  key1='a';

對應(yīng)的執(zhí)行計劃截圖如下圖所示:

(5) fulltext:全文匹配,大字符索引匹配。

(6) ref_or_null:基于普通二級索引查詢且查詢時還需要查詢可能為空的情況:

explain select * from s1 WHERE  key1='a' or key1 is NULL ;

(7) unique_subquery:即子查詢被優(yōu)化為exist,且子查詢返回的是聚簇索引:

explain select * from s1 where s1.common_field in (SELECT id from s2 WHERE s1.common_field=s2.common_field) or key3='a';

(8) index_subquery:和上述查詢類似,只不過子查詢內(nèi)部返回的是普通二級索引:

(9) range:范圍查詢。

(10) index_merge:索引合并,即進(jìn)行SQL查詢時對應(yīng)的條件都是索引類型,SQL優(yōu)化器進(jìn)行查詢時讓兩個索引分別到自己的二級索引樹拿到有序的id集合然后取交集得到聚簇索引值進(jìn)行回表:

對飲的SQL如下,可以看到我們查詢條件都走了索引,查詢結(jié)果是基于多個索引的掃描區(qū)間共同構(gòu)成的聚簇索引,然后取并集進(jìn)行回表:

EXPLAIN select * FROM s1 WHERE KEY1='a' or key3='b'

這一點(diǎn)我們可以通過查詢執(zhí)行計劃印證: +圖片

(11) index:如下SQL所示,查詢時基于聯(lián)合索引,但不符合最左匹配原則,所以需要進(jìn)行全索引掃描匹配key_part2,但查詢時無需回表,這種基于二級索引全掃描但無需回表的訪問方法就是index:

explain select s1.key_part1,s1.key_part2,s1.key_part3 from s1 WHERE  key_part2='a';

對應(yīng)執(zhí)行計劃如下圖所示:

(12) ALL:全表掃描。

extra

這個字段也很重要,它表示當(dāng)前SQL語句的一些額外的信息:

  • Using filesort:即代表SQL查詢時用到了文件掃描,使用了外部的索引進(jìn)行排序,并沒有用到我們自己定義的索引,性能較差。
  • using index:這種方式性能就不錯了,使用了索引并且不需要回表就得到了我們需要的數(shù)據(jù),即用到了索引覆蓋。
  • Using temporary:MySQL查詢排序時使用了臨時表性能較于filesort更差。
  • using where:即代表查詢時僅僅用到了普通的where條件,并沒有用到任何索引,查詢需要在server層進(jìn)行判斷。
  • Using join buffer:在進(jìn)行連接查詢時,被驅(qū)動表的數(shù)據(jù)定位并沒有走索引,于是將驅(qū)動表的數(shù)據(jù)放入緩沖區(qū)進(jìn)行關(guān)聯(lián)匹配。
  • impossible where:說明where條件基本得不到需要的結(jié)果,篩選數(shù)據(jù)時一直處于false的狀態(tài)。

possible_keys

表示當(dāng)前查詢可能用到的索引。如下這個執(zhí)行計劃,它就以為著可能用到了主鍵

key(用到的索引名稱)

表示用到的索引名稱,如下所示下面這條sql可能就用到了這兩個索引。

key_len

key_len表示使用索引時,對應(yīng)使用到的索引的長度,在MySQL的EXPLAIN語句中,key_len列表示使用索引的鍵部分的字節(jié)數(shù)。它是一個估計值,根據(jù)查詢中使用的索引類型和數(shù)據(jù)類型來計算。通常,key_len越小,性能就越好,因?yàn)樗馕吨枰x取更少的數(shù)據(jù)塊。 例如,如果你有一個使用VARCHAR(100)數(shù)據(jù)類型的列作為索引,并且查詢中只使用了前10個字符作為搜索條件,則key_len將是10。如果你使用的是INT(10)數(shù)據(jù)類型的列作為索引,則key_len將是4,因?yàn)镮NT類型占用4個字節(jié)。 在優(yōu)化查詢時,理解key_len可以幫助你確定哪些索引可以更有效地支持查詢,以及如何進(jìn)一步優(yōu)化索引設(shè)計。

例如下面這一句,實(shí)際上索引長度就是303,原因很簡單:

  • key1為varchar(100)且用的是utf8,所以長度為300字節(jié)。
  • 允許空再加一個字節(jié)。
  • varchar需要2字節(jié)維護(hù)長度進(jìn)行再加2字節(jié)。 最終得到303字節(jié):
explain select * from s1 WHERE key1>'a' and key1<'b';

ref

表示進(jìn)行索引匹配時,與之比對的數(shù)據(jù)類型,例如下面這句key1比對的是一個函數(shù)計算值,所以ref是func:

explain select * FROM s1 inner join s2 on s2.key1 =UPPER(s1.key1);

例如這句與索引匹配的是常數(shù),所以得到的是const:

explain select * from s1 WHERE  key1='a';

當(dāng)然進(jìn)行關(guān)聯(lián)查詢時被驅(qū)動表得到的就是驅(qū)動表的id,如下返回的就是s1.id:

explain SELECT * FROM s1 inner join  s2 on s1.id=s2.id;

rows

rows意味著我們查詢時大體需要掃描多少行,對于單表查詢沒什么,但是對于多表查詢,從這個數(shù)據(jù)我們可以得知關(guān)聯(lián)查詢哪個作為驅(qū)動表:

explain SELECT * FROM customer c inner join customer_balances cb on c.id =cb.c_id ;

因?yàn)閏b的rows為1,可知這張表變?yōu)楸或?qū)動表走索引定位:

id|select_type|table|partitions|type|possible_keys             |key                       |key_len|ref    |rows   |filtered|Extra|
--+-----------+-----+----------+----+--------------------------+--------------------------+-------+-------+-------+--------+-----+
 1|SIMPLE     |c    |          |ALL |PRIMARY                   |                          |       |       |4270364|   100.0|     |
 1|SIMPLE     |cb   |          |ref |customer_balances_c_id_IDX|customer_balances_c_id_IDX|8      |db.c.id|      1|   100.0|     |

filter(讀取和過濾占比)

表示選取的行和讀取的行占比,例如下面這句SQL:

explain select * from  s1 WHERE key1 > '1' and s1.common_field ='1';

從筆者執(zhí)行計劃來看,可能會掃描49902,只有大約10%的符合要求:

該查詢在單表查詢中沒有太大意義,但是在連接查詢中就比較有參考價值了,例如下面這句SQL:

explain
 select
 *
from
 s1
inner join s2 on
 s1.key1 = s2.key1
WHERE
 s1.common_field = 'a'

從執(zhí)行計劃可以看出s1作為驅(qū)動表大約掃描99805列數(shù)據(jù),有10%符合要求,而被驅(qū)動表s2過濾值為1和100%比例,這意味著針對被驅(qū)動表的查詢次數(shù)可能是99805*0.1大約9980次。

小結(jié)

通過本文的探索,我們深入了解了MySQL中的EXPLAIN關(guān)鍵字的重要性和作用。EXPLAIN不僅可以幫助我們分析查詢執(zhí)行計劃,還可以為我們提供優(yōu)化查詢性能的關(guān)鍵線索。

通過解讀EXPLAIN的輸出結(jié)果,我們學(xué)會了如何識別潛在的性能瓶頸,并優(yōu)化查詢以提高數(shù)據(jù)庫的效率和響應(yīng)速度。了解索引的使用、表連接順序以及訪問類型等信息,能夠幫助我們更好地優(yōu)化查詢并避免常見的查詢性能問題。

在實(shí)際應(yīng)用中,不斷深入學(xué)習(xí)和理解EXPLAIN的輸出結(jié)果,結(jié)合實(shí)際場景進(jìn)行優(yōu)化實(shí)踐,將為我們的數(shù)據(jù)庫應(yīng)用帶來明顯的性能改善和優(yōu)勢。通過不斷優(yōu)化查詢性能,我們可以提升數(shù)據(jù)庫系統(tǒng)的整體效率,提供更好的用戶體驗(yàn)和服務(wù)質(zhì)量。

在今后的數(shù)據(jù)庫開發(fā)和維護(hù)工作中,讓我們繼續(xù)積極運(yùn)用EXPLAIN關(guān)鍵字,不斷優(yōu)化查詢執(zhí)行計劃,提升數(shù)據(jù)庫性能,為應(yīng)用程序的穩(wěn)定性和可靠性打下堅(jiān)實(shí)的基礎(chǔ)。

責(zé)任編輯:趙寧寧 來源: 寫代碼的SharkChili
相關(guān)推薦

2025-03-12 10:55:30

2023-09-21 10:55:51

MysqlSQL語句

2024-09-12 15:16:14

2023-03-30 08:28:57

explain關(guān)鍵字MySQL

2021-03-17 09:35:51

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

2022-02-15 07:36:21

SQLEXPLAIN數(shù)據(jù)庫

2020-08-26 14:40:38

explainMySQL數(shù)據(jù)庫

2021-02-20 08:40:19

HiveExplain底層

2025-01-09 10:30:40

2021-11-09 07:59:50

開發(fā)

2020-05-21 10:02:51

Explain SQL優(yōu)化

2021-01-04 15:42:37

SQL索引Explain

2023-11-10 09:29:30

MySQLExplain

2021-05-28 10:46:36

MySQL執(zhí)行計劃

2020-09-15 08:44:57

MySQL慢日志SQL

2022-08-08 08:03:44

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

2011-08-18 09:19:19

SQL Server的SQL查詢優(yōu)化

2011-09-14 17:03:17

數(shù)據(jù)庫執(zhí)行計劃解析

2019-10-11 16:48:53

BingGoogle搜索引擎

2010-02-02 14:27:54

C++ static關(guān)
點(diǎn)贊
收藏

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

久草视频视频在线播放| 性少妇xx生活| 亚洲精品一区| 日本一区免费视频| 99精品99久久久久久宅男| 亚洲国产综合久久| av资源久久| 欧美一区二区黄| 成年人网站免费视频| 成人精品一区二区三区校园激情 | 国产精品自拍合集| 九色在线免费| 国产一区二区三区精品视频| 91爱爱小视频k| 久久噜噜色综合一区二区| 女同久久另类99精品国产| 欧美亚洲动漫精品| 男女啪啪免费视频网站| 日本在线视频网| 99久久精品国产麻豆演员表| 国产美女精彩久久| 国产综合精品视频| 国产一区二区三区四区老人| 在线精品高清中文字幕| 国产激情视频网站| 久久久久久久久久久久电影| 美女mm1313爽爽久久久蜜臀| 中文字幕在线不卡一区二区三区| yy111111少妇影院日韩夜片| 最新在线中文字幕| 在线播放亚洲| www.xxxx欧美| www.色多多| 久久久精品区| 91精品国产入口| 啊啊啊国产视频| 黄在线观看免费网站ktv| 亚洲免费观看高清完整版在线 | 亚洲精品国产精品乱码不卡| 免费国产亚洲视频| 欧美在线性视频| 久热这里只有精品在线| 在线一区电影| 色一情一乱一区二区| 日本黄色特级片| 女同久久另类99精品国产| 日韩欧美一区在线观看| 拔插拔插华人永久免费| 欧美性猛交久久久乱大交小说| 国产中文字幕久久| 亚洲调教一区| 亚洲成人aaa| 性鲍视频在线观看| 999久久久国产999久久久| 在线观看日韩毛片| 亚洲国产免费av| 初高中福利视频网站| 婷婷激情成人| 欧美精品第1页| 国产无色aaa| www.欧美视频| 欧美一区二区三区四区视频| 在线观看日本www| 国产精品一区免费在线 | 无码播放一区二区三区| 丁香花在线高清完整版视频| 亚洲成在线观看| 国产乱淫av片杨贵妃| 888av在线视频| av中文字幕一区| 乱色588欧美| 久久天堂电影| 国产精品人人做人人爽人人添| 一本一道久久久a久久久精品91| 精品自拍一区| 黄网动漫久久久| 中文字幕在线亚洲| 91动漫免费网站| 久久精品播放| 欧美成人在线免费视频| 久久久精品91| 亚洲片区在线| 国产成人91久久精品| 亚洲av人无码激艳猛片服务器| 欧美aa在线视频| 91在线观看免费| 免费a级片在线观看| 91老师国产黑色丝袜在线| 日本午夜精品一区二区三区| 国产主播福利在线| 亚洲免费观看高清完整版在线观看熊 | 精品久久免费视频| 日韩在线一区二区| 92裸体在线视频网站| 粉嫩av一区二区夜夜嗨| 三级中文字幕在线观看| 国产精品亚洲第一区在线暖暖韩国 | 精品欧美一区二区在线观看| 菠萝菠萝蜜网站| 成人羞羞网站| 欧美激情精品在线| 日本中文字幕在线观看视频| 国产一区二区三区黄视频| 精品久久蜜桃| 欧美18hd| 都市激情亚洲色图| 天堂av.com| 亚洲国产精品嫩草影院久久av| 久久精品这里热有精品| 久草视频在线观| 精品一区二区三区在线观看国产| 国产一区免费| av在线导航| 色综合色狠狠天天综合色| 欧美一级视频在线| 亚洲精品合集| 欧美高清视频一区二区| 在线视频精品免费| 成人福利视频网站| 国产91av视频在线观看| 中国色在线日|韩| 日韩一区二区三区视频在线观看 | 欧美香蕉视频| 国产欧美日韩三区| 青青草国产免费| 成人在线视频免费看| 亚洲成年人在线| 老湿机69福利| 久久精品国产77777蜜臀| 久久综合中文色婷婷| 七七久久电影网| 3d成人h动漫网站入口| 日韩人妻无码一区二区三区| 国产精品mv在线观看| 国产日韩在线看| 91社区在线高清| 一本大道久久a久久精品综合| aaa黄色大片| 欧美精品激情| 国产综合香蕉五月婷在线| 国产鲁鲁视频在线观看免费| 欧美性高潮在线| free性中国hd国语露脸| 亚洲精品欧美| 精品999在线观看| 99色在线观看| 精品国产电影一区二区| 久久午夜无码鲁丝片午夜精品| 国产乱国产乱300精品| 亚洲免费av网| 91精品国产一区二区在线观看 | 人妻激情偷乱频一区二区三区| 99久久夜色精品国产亚洲1000部| 国产精品视频久| 91网在线播放| 538在线一区二区精品国产| 伊人久久久久久久久久久久久久| 丝袜美腿高跟呻吟高潮一区| 欧美日韩精品综合| 福利一区二区三区视频在线观看| 伊人久久久久久久久久久| 成人午夜精品视频| 国产精品久久久久aaaa樱花 | 国产一区二区三区国产| 400部精品国偷自产在线观看| 国产精品免费精品自在线观看| 久久亚洲欧美日韩精品专区 | 天天免费亚洲黑人免费| 国产午夜精品免费一区二区三区| 自拍偷拍校园春色| 中文字幕免费不卡| 在线能看的av网站| 欧美96在线丨欧| 国产精品入口免费| 在线男人天堂| 色青青草原桃花久久综合| 国产一区二区在线视频观看| 一区二区三区欧美亚洲| 久久久老熟女一区二区三区91| 国产亚洲毛片在线| 少妇免费毛片久久久久久久久| 成人亚洲综合| 欧美高清视频在线播放| 可以免费看污视频的网站在线| 国产一区二区| 日韩欧美国产小视频| 日韩av无码中文字幕| 久久婷婷成人综合色| 欧美一级裸体视频| 99热在线成人| 国产女主播一区二区| 欧洲成人一区| 久久久久久久久久久成人| 国产在线中文字幕| 日韩视频不卡中文| 亚洲中文一区二区| 亚洲精品乱码久久久久久| 强迫凌虐淫辱の牝奴在线观看| 麻豆国产精品777777在线| 青青青在线观看视频| 精品视频日韩| 国产精品污www一区二区三区| 456成人影院在线观看| 欧美激情视频网站| 97视频在线观看网站| 精品成人私密视频| 一区二区日韩视频| 欧美午夜女人视频在线| 欧美黄色一区二区三区| 日本一区二区高清| 中文字幕日韩三级片| 国产自产2019最新不卡| 免费在线激情视频| 欧美日一区二区三区在线观看国产免| 欧美日韩一区二区三区免费| 欧美一级片网址| 国产精品久久久久999| 国产在线精彩视频| 欧美疯狂做受xxxx高潮| 欧美成人性生活视频| 亚洲一区二区精品| 日产精品久久久久久久性色| 9191国产精品| 国产精品午夜一区二区| 欧美日韩免费在线观看| 99热精品免费| 最新国产精品久久精品| 自拍偷拍视频亚洲| 99精品国产热久久91蜜凸| 国产老头和老头xxxx×| 久久99日本精品| 99草草国产熟女视频在线| 久久精品一本| 中文字幕日本最新乱码视频| 亚洲二区精品| 国产91在线亚洲| 欧美在线网址| 国产又黄又爽免费视频| 91影院成人| 亚洲一区二区四区| 日韩一区二区中文| 亚洲春色在线| 色婷婷色综合| 一区二区三区四区欧美| 日韩电影二区| 亚洲国产一区二区在线| 日韩一区欧美| 一级黄色免费在线观看| 在线精品小视频| 天天想你在线观看完整版电影免费| 久久久久蜜桃| 日批视频在线播放| 亚洲三级电影网站| 波多野结衣喷潮| 国产精品伦一区二区三级视频| 免费黄色片网站| 国产欧美日韩卡一| 国产一二三四区在线| 欧美国产一区在线| 97精品在线播放| 亚洲精品国产无天堂网2021| 久久久久久久久久久网| 亚洲高清免费观看高清完整版在线观看| 久久久夜色精品| 亚洲高清免费一级二级三级| 国产在线观看黄色| 欧美三区在线观看| 国产又粗又长又大视频| 日韩精品一区二区三区视频播放| 欧美性猛交 xxxx| 日韩国产中文字幕| 成全电影播放在线观看国语| 久久久国产精品一区| 天天色天天射天天综合网| 久久久久国产精品www| 黑人精品一区| 国产日韩欧美中文在线播放| 亚洲第一二区| 女同一区二区| 天天综合国产| 国产视频一视频二| 日韩av中文字幕一区二区三区| 天天干天天色天天干| 大陆成人av片| 色欲AV无码精品一区二区久久| 亚洲天堂2016| www.日本精品| 欧美日韩一区二区三区在线看 | 日韩理伦片在线| 欧美国产高跟鞋裸体秀xxxhd| 美女在线视频免费| 蜜臀av一区二区在线观看| 漂亮人妻被中出中文字幕| 蜜桃视频一区二区三区在线观看 | 在线观看中文字幕视频| 欧美三级在线视频| 亚洲av综合色区无码一二三区| 日韩精品黄色网| 久久久久久国产精品免费无遮挡| 欧美国产日本在线| jizzyou欧美16| 国产一区二区三区奇米久涩 | 成人短视频在线观看免费| 久久精品日产第一区二区| 999热精品视频| 久久一区二区三区国产精品| 免费在线观看一级片| 日本精品免费观看高清观看| 午夜精品久久久久久久爽 | 日本中文字幕在线观看| 性色av一区二区三区| 日本成人片在线| 国产女主播一区二区| 91精品久久久久久久久久不卡| 91视频最新入口| 国产乱码精品一区二区三区五月婷| 日本少妇高潮喷水xxxxxxx| 亚洲一区二区三区四区五区中文| 亚洲综合成人av| 亚洲精品国产综合久久| 91亚洲天堂| 国产综合视频在线观看| 国产亚洲电影| 黄色网页免费在线观看| 成人免费视频app| 欧美日韩黄色网| 欧美性大战久久久久久久蜜臀| 深夜福利视频网站| 久精品免费视频| 国产精品成人**免费视频| 日本一区二区在线视频观看| 99精品免费| 91精品国产高清91久久久久久| 国产精品对白交换视频| 成人午夜精品视频| 亚洲夜晚福利在线观看| 97蜜桃久久| 国产日韩欧美一区二区| 国产一区视频在线观看免费| 亚洲欧美激情一区二区三区| ...av二区三区久久精品| 亚洲性猛交富婆| 亚洲天堂开心观看| 玛雅亚洲电影| 欧美一级片免费观看| 麻豆精品91| 欧美日韩高清丝袜| 日本高清免费不卡视频| 黄色av免费在线看| 国产精品盗摄久久久| blacked蜜桃精品一区| 在线观看免费黄网站| 国产精品区一区二区三| 在线免费观看一级片| 色哟哟亚洲精品一区二区| 图片一区二区| 亚洲小说欧美另类激情| 国产一区二区三区在线观看免费视频 | 中文文字幕一区二区三三| 亚洲香蕉成视频在线观看| 欧美最新精品| 一区二区三区在线视频看| 激情综合色播五月| 九九热精彩视频| 亚洲第一福利网站| 亚洲美女久久精品| 神马影院我不卡午夜| 久久99精品久久久久久| 精品国产乱码久久久久久鸭王1| 欧美一级夜夜爽| 国精产品一区一区三区mba下载| 国产一区免费观看| 水蜜桃久久夜色精品一区的特点 | 91高清国产视频| 亚洲免费资源在线播放| 欧美 日韩 国产 在线| 69精品小视频| 欧美综合久久| 香蕉视频xxx| 精品久久久久久电影| 国产资源在线观看| 69堂成人精品视频免费| 国产亚洲成人一区| 黄色录像一级片| 亚洲成人av资源网| 日韩不卡视频在线观看| 400部精品国偷自产在线观看| www.亚洲激情.com| 中文字幕第99页| 久久久久久网址| 欧美日韩在线播放视频| 无码人妻少妇色欲av一区二区| 欧美日韩一区二区免费在线观看| 在线免费观看黄色网址| 国产精品日韩二区| 久久精品国产精品亚洲精品| 国产亚洲小视频| 色吧影院999| 精品亚洲精品| 污污的视频免费观看|