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

我們一起聊聊 SQL 性能優(yōu)化神器

數(shù)據(jù)庫 其他數(shù)據(jù)庫
rows顯示了檢查的估計行數(shù),rows× filtered顯示了與下表連接的行數(shù)。例如,如果 rows為1000且 filtered為50.00(50%),則與下表連接的行數(shù)為1000×50%= 500。

對于互聯(lián)網(wǎng)公司來說,隨著用戶量和數(shù)據(jù)量的不斷增加,慢查詢是無法避免的問題。一般情況下如果出現(xiàn)慢查詢,意味著接口響應(yīng)慢、接口超時等問題。如果是高并發(fā)的場景,可能會出現(xiàn)數(shù)據(jù)庫連接被占滿的情況,直接導(dǎo)致服務(wù)不可用。

慢查詢的確會導(dǎo)致很多問題,我們要如何優(yōu)化慢查詢呢?

主要解決辦法有:

  • 監(jiān)控sql執(zhí)行情況,發(fā)郵件、短信報警,便于快速識別慢查詢sql
  • 打開數(shù)據(jù)庫慢查詢?nèi)罩竟δ?/li>
  • 簡化業(yè)務(wù)邏輯
  • 代碼重構(gòu)、優(yōu)化
  • 異步處理
  • sql優(yōu)化
  • 索引優(yōu)化

其他的辦法先不說,后面有機(jī)會再單獨介紹。今天我重點說說索引優(yōu)化,因為它是解決慢查詢sql問題最有效的手段。

如何查看某條sql的索引執(zhí)行情況呢?

沒錯,在sql前面加上explain關(guān)鍵字,就能夠看到它的執(zhí)行計劃,通過執(zhí)行計劃,我們可以清楚的看到表和索引執(zhí)行的情況,索引有沒有執(zhí)行、索引執(zhí)行順序和索引的類型等。

索引優(yōu)化的步驟是:

  1. 使用explain查看sql執(zhí)行計劃
  2. 判斷哪些索引使用不當(dāng)
  3. 優(yōu)化sql,sql可能需要多次優(yōu)化才能達(dá)到索引使用的最優(yōu)值

既然索引優(yōu)化的第一步是使用explain,我們先全面的了解一下它。

explain介紹

先看看mysql的官方文檔是怎么描述explain的:

圖片圖片

  • EXPLAIN可以使用于 SELECT, DELETE, INSERT, REPLACE,和 UPDATE語句。
  • 當(dāng)EXPLAIN與可解釋的語句一起使用時,MySQL將顯示來自優(yōu)化器的有關(guān)語句執(zhí)行計劃的信息。也就是說,MySQL解釋了它將如何處理該語句,包括有關(guān)如何連接表以及以何種順序連接表的信息。
  • 當(dāng)EXPLAIN與非可解釋的語句一起使用時,它將顯示在命名連接中執(zhí)行的語句的執(zhí)行計劃。
  • 對于SELECT語句, EXPLAIN可以顯示的其他執(zhí)行計劃的警告信息。

explain詳解

explain的語法:

{EXPLAIN | DESCRIBE | DESC}
    tbl_name [col_name | wild]

{EXPLAIN | DESCRIBE | DESC}
    [explain_type]
    {explainable_stmt | FORCONNECTION connection_id}

explain_type: {
    EXTENDED
  | PARTITIONS
  | FORMAT = format_name
}

format_name: {
    TRADITIONAL
  | JSON
}

explainable_stmt: {
    SELECTstatement
  | DELETEstatement
  | INSERTstatement
  | REPLACEstatement
  | UPDATEstatement
}

用一條簡單的sql看看使用explain關(guān)鍵字的效果:

explain select * from test1;

執(zhí)行結(jié)果:圖片從上圖中看到執(zhí)行結(jié)果中會顯示12列信息,每列具體信息如下:

圖片

說白了,我們要搞懂這些列的具體含義才能正常判斷索引的使用情況。

話不多說,直接開始介紹吧。

id列

該列的值是select查詢中的序號,比如:1、2、3、4等,它決定了表的執(zhí)行順序。

某條sql的執(zhí)行計劃中一般會出現(xiàn)三種情況:

  1. id相同
  2. id不同
  3. id相同和不同都有

那么這三種情況表的執(zhí)行順序是怎么樣的呢?

1.id相同

執(zhí)行sql如下:

explain select * from test1 t1 inner join test1 t2 on t1.id=t2.id

結(jié)果:

圖片圖片

我們看到執(zhí)行結(jié)果中的兩條數(shù)據(jù)id都是1,是相同的。

這種情況表的執(zhí)行順序是怎么樣的呢?

答案:從上到下執(zhí)行,先執(zhí)行表t1,再執(zhí)行表t2。

執(zhí)行的表要怎么看呢?

答案:看table字段,這個字段后面會詳細(xì)解釋。

2.id不同

執(zhí)行sql如下:

explain select * from test1 t1 where t1.id = (select id from  test1 t2 where  t2.id=2);

結(jié)果:

圖片圖片

我們看到執(zhí)行結(jié)果中兩條數(shù)據(jù)的id不同,第一條數(shù)據(jù)是1,第二條數(shù)據(jù)是2。

這種情況表的執(zhí)行順序是怎么樣的呢?

答案:序號大的先執(zhí)行,這里會從下到上執(zhí)行,先執(zhí)行表t2,再執(zhí)行表t1。

3.id相同和不同都有

執(zhí)行sql如下:

explain
select t1.* from test1 t1
inner join (select max(id) mid from test1 group by id) t2
on t1.id=t2.mid

結(jié)果:

圖片圖片

我們看到執(zhí)行結(jié)果中三條數(shù)據(jù),前面兩條數(shù)據(jù)的的id相同,第三條數(shù)據(jù)的id跟前面的不同。

這種情況表的執(zhí)行順序又是怎么樣的呢?

答案:先執(zhí)行序號大的,先從下而上執(zhí)行。遇到序號相同時,再從上而下執(zhí)行。所以這個列子中表的順序順序是:test1、t1、

也許你會在這里心生疑問:<derived2> 是什么鬼?

它表示派生表,別急后面會講的。

還有一個問題:id列的值允許為空嗎?

答案在后面揭曉。

select_type列

該列表示select的類型。具體包含了如下11種類型:

圖片圖片

但是常用的其實就是下面幾個:

類型

含義

SIMPLE

簡單SELECT查詢,不包含子查詢和UNION

PRIMARY

復(fù)雜查詢中的最外層查詢,表示主要的查詢

SUBQUERY

SELECT或WHERE列表中包含了子查詢

DERIVED

FROM列表中包含的子查詢,即衍生

UNION

UNION關(guān)鍵字之后的查詢

UNION RESULT

從UNION后的表獲取結(jié)果集

下面看看這些SELECT類型具體是怎么出現(xiàn)的:

  1. SIMPLE執(zhí)行sql如下:
explain select * from test1;

結(jié)果:

圖片圖片

它只在簡單SELECT查詢中出現(xiàn),不包含子查詢和UNION,這種類型比較直觀就不多說了。

  1. PRIMARY和 SUBQUERY執(zhí)行sql如下:
explain select * from test1 t1 where t1.id = (select id from  test1 t2 where  t2.id=2);

結(jié)果:

圖片圖片

我們看到這條嵌套查詢的sql中,最外層的t1表是PRIMARY類型,而最里面的子查詢t2表是SUBQUERY類型。

  1. DERIVED執(zhí)行sql如下:
explain
select t1.* from test1 t1
inner join (select max(id) mid from test1 group by id) t2
on t1.id=t2.mid

結(jié)果:

圖片圖片

最后一條記錄就是衍生表,它一般是FROM列表中包含的子查詢,這里是sql中的分組子查詢。

  1. UNION 和 UNION RESULT執(zhí)行sql如下:
explain
select * from test1
union
select* from test2

結(jié)果:

圖片圖片

test2表是UNION關(guān)鍵字之后的查詢,所以被標(biāo)記為UNION,test1是最主要的表,被標(biāo)記為PRIMARY。而<union1,2>表示id=1和id=2的表union,其結(jié)果被標(biāo)記為UNION RESULT。

UNION 和 UNION RESULT一般會成對出現(xiàn)。

此外,回答上面的問題:id列的值允許為空嗎?

如果仔細(xì)看上面那張圖,會發(fā)現(xiàn)id列是可以允許為空的,并且是在SELECT類型為: UNION RESULT的時候。

table列

該列的值表示輸出行所引用的表的名稱,比如前面的:test1、test2等。

但也可以是以下值之一:

  • <unionM,N>:具有和id值的行的M并集N。
  • <derivedN>:用于與該行的派生表結(jié)果id的值N。派生表可能來自(例如)FROM子句中的子查詢 。
  • <subqueryN>:子查詢的結(jié)果,其id值為N

partitions列

該列的值表示查詢將從中匹配記錄的分區(qū)

type列

該列的值表示連接類型,是查看索引執(zhí)行情況的一個重要指標(biāo)。包含如下類型:

圖片圖片

執(zhí)行結(jié)果從最好到最壞的的順序是從上到下。

我們需要重點掌握的是下面幾種類型:

system > const > eq_ref > ref > range > index > ALL

在演示之前,先說明一下test2表中只有一條數(shù)據(jù):

圖片圖片

并且code字段上面建了一個普通索引:

圖片圖片

下面逐一看看常見的幾個連接類型是怎么出現(xiàn)的:

  1. system這種類型要求數(shù)據(jù)庫表中只有一條數(shù)據(jù),是const類型的一個特例,一般情況下是不會出現(xiàn)的。
  2. const通過一次索引就能找到數(shù)據(jù),一般用于主鍵或唯一索引作為條件的查詢sql中,執(zhí)行sql如下:
explain select * from test2 where id=1;

結(jié)果:

圖片圖片

  1. eq_ref常用于主鍵或唯一索引掃描。執(zhí)行sql如下:
explain select * from test2 t1 inner join test2 t2 on t1.id=t2.id;

結(jié)果:

圖片圖片

此時,有人可能感到不解,const和eq_ref都是對主鍵或唯一索引的掃描,有什么區(qū)別?

 答:const只索引一次,而eq_ref主鍵和主鍵匹配,由于表中有多條數(shù)據(jù),一般情況下要索引多次,才能全部匹配上。

  1. ref常用于非主鍵和唯一索引掃描。執(zhí)行sql如下:
explain select * from test2 where code = '001';

結(jié)果:

圖片圖片

  1. range常用于范圍查詢,比如:between ... and 或 In 等操作,執(zhí)行sql如下:
explain select * from test2 where id between 1 and 2;

結(jié)果:

圖片圖片

  1. index全索引掃描。執(zhí)行sql如下:
explain select code from test2;

結(jié)果:

圖片圖片

  1. ALL全表掃描。執(zhí)行sql如下:
explain select *  from test2;

結(jié)果:

圖片圖片

 

possible_keys列

該列表示可能的索引選擇。

請注意,此列完全獨立于表的順序,這就意味著possible_keys在實踐中,某些鍵可能無法與生成的表順序一起使用。

圖片圖片

如果此列是NULL,則沒有相關(guān)的索引。在這種情況下,您可以通過檢查該WHERE 子句以檢查它是否引用了某些適合索引的列,從而提高查詢性能。

key列

該列表示實際用到的索引。

可能會出現(xiàn)possible_keys列為NULL,但是key不為NULL的情況。

演示之前,先看看test1表結(jié)構(gòu):

圖片圖片

test1表中數(shù)據(jù):

圖片圖片

使用的索引:

圖片圖片

code和name字段使用了聯(lián)合索引。

執(zhí)行sql如下:

explain select code  from test1;

結(jié)果:

圖片圖片

這條sql預(yù)計沒有使用索引,但是實際上使用了全索引掃描方式的索引。

key_len列

該列表示使用索引的長度。上面的key列可以看出有沒有使用索引,key_len列則可以更進(jìn)一步看出索引使用是否充分。不出意外的話,它是最重要的列。

圖片圖片

有個關(guān)鍵的問題浮出水面:key_len是如何計算的?

決定key_len值的三個因素:

  1.字符集

  2.長度

  3.是否為空 

常用的字符編碼占用字節(jié)數(shù)量如下:

圖片圖片

目前我的數(shù)據(jù)庫字符編碼格式用的:UTF8占3個字節(jié)。

mysql常用字段占用字節(jié)數(shù):

字段類型

占用字節(jié)數(shù)

char(n)

n

varchar(n)

 n + 2

tinyint

1

smallint

2

int

4

bigint

8

date

3

timestamp

4

datetime

8

此外,如果字段類型允許為空則加1個字節(jié)。

上圖中的 184是怎么算的?184 = 30 * 3 + 2 + 30 * 3 + 2

  再把test1表的code字段類型改成char,并且改成允許為空:

圖片圖片

執(zhí)行sql如下:

explain select code  from test1;

結(jié)果:

圖片圖片

怎么算的?

183 = 30 * 3 + 1 + 30 * 3 + 2

還有一個問題:為什么這列表示索引使用是否充分呢,還有使用不充分的情況?

執(zhí)行sql如下:

explain select code  from test1 where code='001';

結(jié)果:

圖片圖片

上圖中使用了聯(lián)合索引:idx_code_name,如果索引全匹配key_len應(yīng)該是183,但實際上卻是92,這就說明沒有使用所有的索引,索引使用不充分。

ref列

該列表示索引命中的列或者常量。

執(zhí)行sql如下:

explain select *  from test1 t1 inner join test1 t2 on t1.id=t2.id where t1.code='001';

結(jié)果:

圖片

我們看到表t1命中的索引是const(常量),而t2命中的索引是列sue庫的t1表的id字段。

rows列

該列表示MySQL認(rèn)為執(zhí)行查詢必須檢查的行數(shù)。

圖片圖片

對于InnoDB表,此數(shù)字是估計值,可能并不總是準(zhǔn)確的。

filtered列

該列表示按表條件過濾的表行的估計百分比。最大值為100,這表示未過濾行。值從100減小表示過濾量增加。

圖片圖片

rows顯示了檢查的估計行數(shù),rows× filtered顯示了與下表連接的行數(shù)。例如,如果 rows為1000且 filtered為50.00(50%),則與下表連接的行數(shù)為1000×50%= 500。

Extra列

該字段包含有關(guān)MySQL如何解析查詢的其他信息,這列還是挺重要的,但是里面包含的值太多,就不一一介紹了,只列舉幾個常見的。

  1. Impossible WHERE表示W(wǎng)HERE后面的條件一直都是false,執(zhí)行sql如下:
explain select code  from test1 where 'a' = 'b';

結(jié)果:

圖片圖片

  1. Using filesort表示按文件排序,一般是在指定的排序和索引排序不一致的情況才會出現(xiàn)。執(zhí)行sql如下:
explain select code  from test1 order by name desc;

結(jié)果:

圖片圖片

這里建立的是code和name的聯(lián)合索引,順序是code在前,name在后,這里直接按name降序,跟之前聯(lián)合索引的順序不一樣。

  1. Using index表示是否用了覆蓋索引,說白了它表示是否所有獲取的列都走了索引。

圖片圖片

  1. 上面那個例子中其實就用到了:Using index,因為只返回一列code,它字段走了索引。
  2. Using temporary表示是否使用了臨時表,一般多見于order by 和 group by語句。執(zhí)行sql如下:
explain select name  from test1 group by name;

結(jié)果:

圖片圖片

  1. Using where表示使用了where條件過濾。
  2. Using join buffer

   表示是否使用連接緩沖。來自較早聯(lián)接的表被部分讀取到聯(lián)接緩沖區(qū)中,然后從緩沖區(qū)中使用它們的行來與當(dāng)前表執(zhí)行聯(lián)接。

索引優(yōu)化的過程

   1.先用慢查詢?nèi)罩径ㄎ痪唧w需要優(yōu)化的sql

   2.使用explain執(zhí)行計劃查看索引使用情況

   3.重點關(guān)注:

       key(查看有沒有使用索引)

       key_len(查看索引使用是否充分)

       type(查看索引類型)

       Extra(查看附加信息:排序、臨時表、where條件為false等)

   一般情況下根據(jù)這4列就能找到索引問題。

   4.根據(jù)上1步找出的索引問題優(yōu)化sql

   5.再回到第2步

責(zé)任編輯:武曉燕 來源: 蘇三說技術(shù)
相關(guān)推薦

2025-06-11 02:10:00

2025-03-13 05:00:00

2024-02-26 00:00:00

Go性能工具

2024-11-04 09:52:19

單例模式性能內(nèi)存

2023-12-29 08:29:15

QPS系統(tǒng)應(yīng)用

2023-07-14 12:28:07

JVM優(yōu)化操作

2025-01-07 09:07:36

接口屬性路徑

2023-03-29 08:13:48

MySQL檢索成本

2023-06-30 08:18:51

敏捷開發(fā)模式

2023-08-10 08:28:46

網(wǎng)絡(luò)編程通信

2023-08-04 08:20:56

DockerfileDocker工具

2022-05-24 08:21:16

數(shù)據(jù)安全API

2023-09-10 21:42:31

2021-11-04 06:58:31

CSS性能設(shè)備

2023-10-26 08:38:43

SQL排名平分分區(qū)

2024-02-20 21:34:16

循環(huán)GolangGo

2021-08-27 07:06:10

IOJava抽象

2023-05-29 09:07:10

SQLpageSize主鍵

2022-11-03 07:51:54

運維體系監(jiān)控

2024-07-26 09:47:28

點贊
收藏

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

777久久久精品| 国产一区三区三区| 亚洲午夜久久久久久久| 日本一二区免费| 日韩av激情| 99久久婷婷国产综合精品| 国产成人涩涩涩视频在线观看| 少妇精品无码一区二区免费视频 | 日韩av免费看| 男人的午夜天堂| 激情视频极品美女日韩| 在线观看成人免费视频| 国产制服91一区二区三区制服| 无码国产精品一区二区免费16| 亚洲视频播放| 久久精品国产亚洲精品2020| 私密视频在线观看| 六九午夜精品视频| 午夜婷婷国产麻豆精品| 亚洲一区在线直播| 婷婷五月综合久久中文字幕| 美女www一区二区| 国外成人在线直播| 亚洲天堂一级片| 亚欧洲精品视频在线观看| 69堂成人精品免费视频| 熟妇人妻va精品中文字幕| 羞羞网站在线看| 中文字幕第一区综合| 国产伦精品一区二区三区视频黑人| 免费看污视频的网站| 欧美午夜不卡| 久久视频在线观看免费| xxxx日本免费| 美女视频亚洲色图| 日韩欧美一级特黄在线播放| 日本黄色福利视频| 成人免费看视频网站| 亚洲国产中文字幕| 久久最新免费视频| 2019中文字幕在线视频| 国产视频一区不卡| 欧美二区在线| 亚洲色欧美另类| 成人激情av网| 国产高清在线一区| 亚洲国产精品18久久久久久| 国产一区二区三区黄视频 | 午夜美女福利视频| 激情另类小说区图片区视频区| 国产成人亚洲精品| 天堂中文字幕在线观看| 亚洲精品黄色| 668精品在线视频| 日本在线视频免费| 伊人成人在线| 97人人做人人爱| 99热国产在线观看| 亚洲精品综合| 91av在线网站| 黄色片中文字幕| 久久久亚洲一区| 国产精品国产三级国产aⅴ9色 | 久久免费电影| 亚洲国产精品尤物yw在线观看| 乱熟女高潮一区二区在线| 亚洲婷婷噜噜| 亚洲成人av一区二区三区| 国产 日韩 欧美在线| av福利导福航大全在线| 欧美日韩国产精品| 四虎永久在线精品无码视频| 制服诱惑亚洲| 777午夜精品免费视频| 成人在线短视频| 99国产精品免费网站| 亚洲成人亚洲激情| 国产精品无码在线| 国产剧情在线观看一区| 色妞在线综合亚洲欧美| 精品无码一区二区三区蜜臀| 欧美1区3d| 91国在线精品国内播放| 免费观看日批视频| 久久99精品国产麻豆婷婷| 亚洲一区二区中文字幕| 日韩一级片免费看| 欧美国产日韩a欧美在线观看| 国产精品波多野结衣| av资源中文在线| 在线免费观看成人短视频| 青青草久久伊人| 高潮按摩久久久久久av免费| 亚洲美女av在线播放| chinese全程对白| 最新国产拍偷乱拍精品| 国产精品久久久久久五月尺| 午夜精品久久久久久久99热黄桃| wwwwww.欧美系列| 一区二区免费在线观看| 不卡av免费观看| 欧美系列在线观看| 国产精品果冻传媒| 精品久久中文| 久久久久久成人精品| 在线视频精品免费| 大尺度一区二区| 亚洲春色在线视频| 青青青免费在线视频| 欧美老年两性高潮| 国产精品揄拍100视频| 久久精品亚洲人成影院| 青草青草久热精品视频在线观看| 国产精品一二三四五区| 久久蜜桃av一区精品变态类天堂| 超级碰在线观看| 成人国产精品入口免费视频| 亚洲国产成人精品一区二区| 搜索黄色一级片| 日韩成人午夜精品| 久久久久久久久一区| 欧美xxx黑人xxx水蜜桃| 欧美男生操女生| 久久精品国产亚洲av久| 亚洲激情国产| 99久久精品免费看国产一区二区三区 | 加勒比婷婷色综合久久| 另类av一区二区| 国产精品免费观看高清| 成人免费观看视频大全| 欧美日韩国产中文| 天堂久久精品忘忧草| 99re国产精品| 国产精品sss| 丝袜国产在线| 91精品国产综合久久久久| 欧美熟妇精品黑人巨大一二三区| 午夜精品偷拍| 91亚洲精品久久久| 日本在线视频网| 欧美性三三影院| 中国女人特级毛片| 水蜜桃久久夜色精品一区的特点| 精品一区二区三区自拍图片区| 四虎影院观看视频在线观看| 欧美电影精品一区二区| 欧美日韩亚洲国产另类| 国产精品白丝jk白祙喷水网站| 一区二区精品免费视频| 国产精区一区二区| 久久夜色精品亚洲噜噜国产mv| 91精品国产乱码久久| 国产精品高潮呻吟| 欧美日韩理论片| 欧美99在线视频观看| 亚洲自拍偷拍在线| 午夜小视频在线观看| 日韩欧美一区二区免费| 精品一区二区三区四| 成人网页在线观看| 成人午夜免费在线| 中文字幕亚洲影视| 国产精品国产自产拍高清av水多 | 一卡二卡三卡在线观看| 国产精品久久久久久久浪潮网站| 亚洲欧美自拍另类日韩| 99精品视频精品精品视频| 91免费综合在线| 肉体视频在线| 日韩经典中文字幕| 九九热最新视频| 一区精品在线播放| 中文字幕在线观看91| 亚洲少妇一区| 色噜噜狠狠一区二区三区| 亚洲青青一区| 欧美黑人又粗大| 美女做暖暖视频免费在线观看全部网址91 | 在线观看欧美日本| 91麻豆制片厂| 国产91精品一区二区麻豆网站 | 久久国产日韩| 中文字幕一区二区三区乱码| 视频在线观看免费影院欧美meiju| 欧美激情一区二区久久久| 三级在线播放| 91精品福利在线一区二区三区| 日韩成人av毛片| 中文字幕免费观看一区| 欧美xxxx黑人| 日韩av电影免费观看高清完整版| 国产高清免费在线| 岳的好大精品一区二区三区| 91免费在线视频| 88xx成人永久免费观看| 超薄丝袜一区二区| 深夜福利在线看| 欧洲一区在线观看| 久久久久无码国产精品不卡| 久久久噜噜噜久噜久久综合| 男人操女人下面视频| 久久伊人亚洲| 性高湖久久久久久久久aaaaa| 成人精品影院| 精品免费国产| 在线观看a视频| 三级中文字幕在线观看| 欧洲精品一区二区三区| 日韩三区四区| 国产老肥熟一区二区三区| 亚洲一区美女| 五月国产精品| 99精彩视频| 91se在线| 国产精品白丝jk黑袜喷水| 精品国产免费av| 欧美成人午夜| 亚洲精品久久区二区三区蜜桃臀| 国产伦精品一区二区三区在线播放 | 国产欧美一区二区精品秋霞影院 | 国产成人av一区二区三区在线观看| 内射国产内射夫妻免费频道| 亚洲成人一区| 亚洲激情电影在线| 最新国产精品视频| 国产免费一区二区| 日韩精品一区国产| 成人在线小视频| 国产私拍福利精品视频二区| 2023亚洲男人天堂| 国产偷倩在线播放| 九九热精品视频国产| 毛片网站在线免费观看| 中文亚洲视频在线| 成人在线观看黄色| 亚洲美女自拍视频| 天天在线女人的天堂视频| 亚洲成人黄色网| 亚洲精品久久久蜜桃动漫| 69堂成人精品免费视频| 国产一区二区三区中文字幕| 欧美视频三区在线播放| 波多野结衣毛片| 一本一道综合狠狠老| 欧美日韩综合在线观看| 亚洲妇女屁股眼交7| 欧美激情va永久在线播放| 欧美性极品少妇| 亚洲一级不卡视频| 久久久久久久少妇| 中文亚洲字幕| 2022中文字幕| 欧美成人777| 国产精品影院在线| 九一亚洲精品| 国产目拍亚洲精品99久久精品| www.好吊操| 在线成人h网| 天天夜碰日日摸日日澡性色av| 亚洲高清网站| av之家在线观看| 亚洲欧美日韩视频二区| 免费裸体美女网站| 日韩成人精品视频| 国产91色在线观看| 精品一区在线看| 佐山爱在线视频| 波多野结衣亚洲一区| 国内精品久久99人妻无码| 国产色91在线| 精品无码久久久久成人漫画| 一区二区三区四区蜜桃| 日韩激情在线播放| 色婷婷亚洲一区二区三区| 中文字幕欧美在线观看| 91精品在线免费| 天堂中文在线资源| 亚洲色在线视频| 国产视频一区二区| 欧美精品videossex88| 东京一区二区| 成人网页在线免费观看| 精品久久对白| 午夜欧美一区二区三区免费观看| 在线观看国产精品入口| 日本在线xxx| 九色综合国产一区二区三区| 丰满少妇xbxb毛片日本| 日本伊人精品一区二区三区观看方式 | 欧美羞羞免费网站| 亚洲高清视频免费观看| 欧美一区二区三区色| 无码精品人妻一区二区| 中文字幕精品一区久久久久| 中中文字幕av在线| 日本人成精品视频在线| 精品一区二区三区中文字幕 | 亚洲女人在线观看| 97久久精品人人澡人人爽| 免费一级特黄3大片视频| 亚洲精品成人悠悠色影视| 6080午夜伦理| 精品黑人一区二区三区久久| 不卡在线视频| 97久久精品视频| 一区二区三区无毛| 快播亚洲色图| 欧美日韩岛国| 久久久久久久色| 精精国产xxxx视频在线| 91av在线视频观看| 精品一区二区三区免费看| 色一情一乱一伦一区二区三区| 韩国亚洲精品| 亚洲自拍第三页| 国产欧美精品区一区二区三区| 国产精品19乱码一区二区三区| 欧美日韩一区二区不卡| 性高潮久久久久久久久久| 久久99国产精品自在自在app| 激情久久一区二区| 成人av在线一区二区| 日韩国产在线看| 经典三级在线视频| 免费黄色网址在线| 五月精品视频| 亚洲国产成人精品无码区99| 日本午夜一本久久久综合| 天天插天天射天天干| 亚洲精品高清在线观看| 在线观看国产小视频| 亚洲欧洲黄色网| 热色播在线视频| 精品999在线观看| 欧美三级特黄| 伊人av在线播放| 亚洲精品乱码久久久久久黑人| 亚洲中文字幕在线一区| 国产亚洲人成a一在线v站| xx欧美视频| 免费观看成人在线| 国产欧美一区二区三区国产幕精品| 精品久久久久久无码人妻| 亚洲激情男女视频| 国产高潮在线观看| 美女视频黄免费的亚洲男人天堂| 亚洲网站三级| 亚洲小说欧美另类激情| 国产在线乱码一区二区三区| 亚洲天堂一级片| 日韩一区二区免费电影| 99视频免费在线观看| 亚洲一区二区在线播放| 99re91这里只有精品| 欧美俄罗斯乱妇| 97久久亚洲| 日韩a∨精品日韩在线观看| 成人av中文字幕| 在线观看精品国产| 亚洲毛片在线免费观看| 日本精品网站| 中文字幕不卡每日更新1区2区| 激情文学综合插| 久久激情免费视频| 亚洲а∨天堂久久精品喷水| 3344国产永久在线观看视频| 久久精品中文字幕一区二区三区| 欧美在线综合| 成人一级片免费看| 91精品国产色综合久久不卡电影 | 久久综合狠狠综合| 久久精品视频2| 日韩在线高清视频| 亚洲精品在线a| 欧美一区二区三区爽大粗免费| 久久在线观看免费| 亚洲中文无码av在线| 美日韩精品视频免费看| 精品国产一区二区三区成人影院| 91看片就是不一样| 国产精品全国免费观看高清| www.色亚洲| 欧美专区在线观看| 99久久夜色精品国产亚洲狼 | 久久久精品中文字幕麻豆发布| 波多野结衣家庭主妇| 九九九久久国产免费| 最近国产精品视频| 欧美丝袜在线观看| 亚洲6080在线| 亚洲视频tv| 国产精品一区二区三区在线观| 久久蜜桃资源一区二区老牛| 91麻豆精品成人一区二区| 亚洲的天堂在线中文字幕| 99久久伊人| 免费国产黄色网址| 中文字幕制服丝袜一区二区三区 | 日批视频免费在线观看| 精品中文字幕乱|