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

8種常見(jiàn)SQL錯(cuò)誤用法奉上

共 5747字,需瀏覽 12分鐘

 ·

2020-10-20 06:07

來(lái)源:yq.aliyun.com/articles/72501

1. LIMIT 語(yǔ)句

分頁(yè)查詢是最常用的場(chǎng)景之一,但也通常也是最容易出問(wèn)題的地方。比如對(duì)于下面簡(jiǎn)單的語(yǔ)句,一般DBA想到的辦法是在type, name, create_time字段上加組合索引。這樣條件排序都能有效的利用到索引,性能迅速提升。

SELECT?*?
FROM???operation?
WHERE??type?=?'SQLStats'?
???????AND?name?=?'SlowLog'?
ORDER??BY?create_time?
LIMIT??1000,?10;?

好吧,可能90%以上的DBA解決該問(wèn)題就到此為止。但當(dāng) LIMIT 子句變成 “LIMIT 1000000,10” 時(shí),程序員仍然會(huì)抱怨:我只取10條記錄為什么還是慢?

要知道數(shù)據(jù)庫(kù)也并不知道第1000000條記錄從什么地方開(kāi)始,即使有索引也需要從頭計(jì)算一次。出現(xiàn)這種性能問(wèn)題,多數(shù)情形下是程序員偷懶了。在前端數(shù)據(jù)瀏覽翻頁(yè),或者大數(shù)據(jù)分批導(dǎo)出等場(chǎng)景下,是可以將上一頁(yè)的最大值當(dāng)成參數(shù)作為查詢條件的。SQL重新設(shè)計(jì)如下:

SELECT???*?
FROM?????operation?
WHERE????type?=?'SQLStats'?
AND??????name?=?'SlowLog'?
AND??????create_time?>?'2017-03-16?14:00:00'?
ORDER?BY?create_time?limit?10;

在新設(shè)計(jì)下查詢時(shí)間基本固定,不會(huì)隨著數(shù)據(jù)量的增長(zhǎng)而發(fā)生變化。

2. 隱式轉(zhuǎn)換

SQL語(yǔ)句中查詢變量和字段定義類型不匹配是另一個(gè)常見(jiàn)的錯(cuò)誤。比如下面的語(yǔ)句:

mysql>?explain?extended?SELECT?*?
?????>?FROM???my_balance?b?
?????>?WHERE??b.bpn?=?14000000123?
?????>???????AND?b.isverified?IS?NULL?;
mysql>?show?warnings;
|?Warning?|?1739?|?Cannot?use?ref?access?on?index?'bpn'?due?to?type?or?collation?conversion?on?field?'bpn'

其中字段bpn的定義為varchar(20),MySQL的策略是將字符串轉(zhuǎn)換為數(shù)字之后再比較。函數(shù)作用于表字段,索引失效。

上述情況可能是應(yīng)用程序框架自動(dòng)填入的參數(shù),而不是程序員的原意。現(xiàn)在應(yīng)用框架很多很繁雜,使用方便的同時(shí)也小心它可能給自己挖坑。

3. 關(guān)聯(lián)更新、刪除

雖然MySQL5.6引入了物化特性,但需要特別注意它目前僅僅針對(duì)查詢語(yǔ)句的優(yōu)化。對(duì)于更新或刪除需要手工重寫成JOIN。

比如下面UPDATE語(yǔ)句,MySQL實(shí)際執(zhí)行的是循環(huán)/嵌套子查詢(DEPENDENT SUBQUERY),其執(zhí)行時(shí)間可想而知。

UPDATE?operation?o?
SET????status?=?'applying'?
WHERE??o.id?IN?(SELECT?id?
????????????????FROM???(SELECT?o.id,?
???????????????????????????????o.status?
????????????????????????FROM???operation?o?
????????????????????????WHERE??o.group?=?123?
???????????????????????????????AND?o.status?NOT?IN?(?'done'?)?
????????????????????????ORDER??BY?o.parent,?
??????????????????????????????????o.id?
????????????????????????LIMIT??1)?t);?

執(zhí)行計(jì)劃:

+----+--------------------+-------+-------+---------------+---------+---------+-------+------+-----------------------------------------------------+
|?id?|?select_type????????|?table?|?type??|?possible_keys?|?key?????|?key_len?|?ref???|?rows?|?Extra???????????????????????????????????????????????|
+----+--------------------+-------+-------+---------------+---------+---------+-------+------+-----------------------------------------------------+
|?1??|?PRIMARY????????????|?o?????|?index?|???????????????|?PRIMARY?|?8???????|???????|?24???|?Using?where;?Using?temporary????????????????????????|
|?2??|?DEPENDENT?SUBQUERY?|???????|???????|???????????????|?????????|?????????|???????|??????|?Impossible?WHERE?noticed?after?reading?const?tables?|
|?3??|?DERIVED????????????|?o?????|?ref???|?idx_2,idx_5???|?idx_5???|?8???????|?const?|?1????|?Using?where;?Using?filesort?????????????????????????|
+----+--------------------+-------+-------+---------------+---------+---------+-------+------+-----------------------------------------------------+

重寫為JOIN之后,子查詢的選擇模式從DEPENDENT SUBQUERY變成DERIVED,執(zhí)行速度大大加快,從7秒降低到2毫秒。

UPDATE?operation?o?
???????JOIN??(SELECT?o.id,?
????????????????????????????o.status?
?????????????????????FROM???operation?o?
?????????????????????WHERE??o.group?=?123?
????????????????????????????AND?o.status?NOT?IN?(?'done'?)?
?????????????????????ORDER??BY?o.parent,?
???????????????????????????????o.id?
?????????????????????LIMIT??1)?t
?????????ON?o.id?=?t.id?
SET????status?=?'applying'?

執(zhí)行計(jì)劃簡(jiǎn)化為:

+----+-------------+-------+------+---------------+-------+---------+-------+------+-----------------------------------------------------+
|?id?|?select_type?|?table?|?type?|?possible_keys?|?key???|?key_len?|?ref???|?rows?|?Extra???????????????????????????????????????????????|
+----+-------------+-------+------+---------------+-------+---------+-------+------+-----------------------------------------------------+
|?1??|?PRIMARY?????|???????|??????|???????????????|???????|?????????|???????|??????|?Impossible?WHERE?noticed?after?reading?const?tables?|
|?2??|?DERIVED?????|?o?????|?ref??|?idx_2,idx_5???|?idx_5?|?8???????|?const?|?1????|?Using?where;?Using?filesort?????????????????????????|
+----+-------------+-------+------+---------------+-------+---------+-------+------+-----------------------------------------------------+

4. 混合排序

MySQL不能利用索引進(jìn)行混合排序。但在某些場(chǎng)景,還是有機(jī)會(huì)使用特殊方法提升性能的。

SELECT?*?
FROM???my_order?o?
???????INNER?JOIN?my_appraise?a?ON?a.orderid?=?o.id?
ORDER??BY?a.is_reply?ASC,?
??????????a.appraise_time?DESC?
LIMIT??0,?20?

執(zhí)行計(jì)劃顯示為全表掃描:

+----+-------------+-------+--------+-------------+---------+---------+---------------+---------+-+
|?id?|?select_type?|?table?|?type???|?possible_keys?????|?key?????|?key_len?|?ref??????|?rows????|?Extra????
+----+-------------+-------+--------+-------------+---------+---------+---------------+---------+-+
|??1?|?SIMPLE??????|?a?????|?ALL????|?idx_orderid?|?NULL????|?NULL????|?NULL????|?1967647?|?Using?filesort?|
|??1?|?SIMPLE??????|?o?????|?eq_ref?|?PRIMARY?????|?PRIMARY?|?122?????|?a.orderid?|???????1?|?NULL???????????|
+----+-------------+-------+--------+---------+---------+---------+-----------------+---------+-+

由于is_reply只有0和1兩種狀態(tài),我們按照下面的方法重寫后,執(zhí)行時(shí)間從1.58秒降低到2毫秒。

SELECT?*?
FROM???((SELECT?*
?????????FROM???my_order?o?
????????????????INNER?JOIN?my_appraise?a?
????????????????????????ON?a.orderid?=?o.id?
???????????????????????????AND?is_reply?=?0?
?????????ORDER??BY?appraise_time?DESC?
?????????LIMIT??0,?20)?
????????UNION?ALL?
????????(SELECT?*
?????????FROM???my_order?o?
????????????????INNER?JOIN?my_appraise?a?
????????????????????????ON?a.orderid?=?o.id?
???????????????????????????AND?is_reply?=?1?
?????????ORDER??BY?appraise_time?DESC?
?????????LIMIT??0,?20))?t?
ORDER??BY??is_reply?ASC,?
??????????appraisetime?DESC?
LIMIT??20;?

5. EXISTS語(yǔ)句

MySQL對(duì)待EXISTS子句時(shí),仍然采用嵌套子查詢的執(zhí)行方式。如下面的SQL語(yǔ)句:

SELECT?*
FROM???my_neighbor?n?
???????LEFT?JOIN?my_neighbor_apply?sra?
??????????????ON?n.id?=?sra.neighbor_id?
?????????????????AND?sra.user_id?=?'xxx'?
WHERE??n.topic_status?4?
???????AND?EXISTS(SELECT?1?
??????????????????FROM???message_info?m?
??????????????????WHERE??n.id?=?m.neighbor_id?
?????????????????????????AND?m.inuser?=?'xxx')?
???????AND?n.topic_type?<>?5?

執(zhí)行計(jì)劃為:

+----+--------------------+-------+------+-----+------------------------------------------+---------+-------+---------+?-----+
|?id?|?select_type????????|?table?|?type?|?possible_keys?????|?key???|?key_len?|?ref???|?rows????|?Extra???|
+----+--------------------+-------+------+?-----+------------------------------------------+---------+-------+---------+?-----+
|??1?|?PRIMARY????????????|?n?????|?ALL??|??|?NULL?????|?NULL????|?NULL??|?1086041?|?Using?where???????????????????|
|??1?|?PRIMARY????????????|?sra???|?ref??|??|?idx_user_id?|?123?????|?const?|???????1?|?Using?where??????????|
|??2?|?DEPENDENT?SUBQUERY?|?m?????|?ref??|??|?idx_message_info???|?122?????|?const?|???????1?|?Using?index?condition;?Using?where?|
+----+--------------------+-------+------+?-----+------------------------------------------+---------+-------+---------+?-----+

去掉exists更改為join,能夠避免嵌套子查詢,將執(zhí)行時(shí)間從1.93秒降低為1毫秒。

SELECT?*
FROM???my_neighbor?n?
???????INNER?JOIN?message_info?m?
???????????????ON?n.id?=?m.neighbor_id?
??????????????????AND?m.inuser?=?'xxx'?
???????LEFT?JOIN?my_neighbor_apply?sra?
??????????????ON?n.id?=?sra.neighbor_id?
?????????????????AND?sra.user_id?=?'xxx'?
WHERE??n.topic_status?4?
???????AND?n.topic_type?<>?5?

新的執(zhí)行計(jì)劃:

+----+-------------+-------+--------+?-----+------------------------------------------+---------+?-----+------+?-----+
|?id?|?select_type?|?table?|?type???|?possible_keys?????|?key???????|?key_len?|?ref???|?rows?|?Extra?????????????????|
+----+-------------+-------+--------+?-----+------------------------------------------+---------+?-----+------+?-----+
|??1?|?SIMPLE??????|?m?????|?ref????|?|?idx_message_info???|?122?????|?const????|????1?|?Using?index?condition?|
|??1?|?SIMPLE??????|?n?????|?eq_ref?|?|?PRIMARY???|?122?????|?ighbor_id?|????1?|?Using?where??????|
|??1?|?SIMPLE??????|?sra???|?ref????|?|?idx_user_id?|?123?????|?const?????|????1?|?Using?where???????????|
+----+-------------+-------+--------+?-----+------------------------------------------+---------+?-----+------+?-----+

6. 條件下推

外部查詢條件不能夠下推到復(fù)雜的視圖或子查詢的情況有:

  1. 聚合子查詢;
  2. 含有LIMIT的子查詢;
  3. UNION 或UNION ALL子查詢;
  4. 輸出字段中的子查詢;

如下面的語(yǔ)句,從執(zhí)行計(jì)劃可以看出其條件作用于聚合子查詢之后:

SELECT?*?
FROM???(SELECT?target,?
???????????????Count(*)?
????????FROM???operation?
????????GROUP??BY?target)?t?
WHERE??target?=?'rm-xxxx'?
+----+-------------+------------+-------+---------------+-------------+---------+-------+------+-------------+
|?id?|?select_type?|?table??????|?type??|?possible_keys?|?key?????????|?key_len?|?ref???|?rows?|?Extra???????|
+----+-------------+------------+-------+---------------+-------------+---------+-------+------+-------------+
|??1?|?PRIMARY?????|??|?ref???|????|??|?514?????|?const?|????2?|?Using?where?|
|??2?|?DERIVED?????|?operation??|?index?|?idx_4?????????|?idx_4???????|?519?????|?NULL??|???20?|?Using?index?|
+----+-------------+------------+-------+---------------+-------------+---------+-------+------+-------------+

確定從語(yǔ)義上查詢條件可以直接下推后,重寫如下:

SELECT?target,?
???????Count(*)?
FROM???operation?
WHERE??target?=?'rm-xxxx'?
GROUP??BY?target

執(zhí)行計(jì)劃變?yōu)椋?/p>

+----+-------------+-----------+------+---------------+-------+---------+-------+------+--------------------+
|?id?|?select_type?|?table?|?type?|?possible_keys?|?key?|?key_len?|?ref?|?rows?|?Extra?|
+----+-------------+-----------+------+---------------+-------+---------+-------+------+--------------------+
|?1?|?SIMPLE?|?operation?|?ref?|?idx_4?|?idx_4?|?514?|?const?|?1?|?Using?where;?Using?index?|
+----+-------------+-----------+------+---------------+-------+---------+-------+------+--------------------+

關(guān)于MySQL外部條件不能下推的詳細(xì)解釋說(shuō)明請(qǐng)參考以前文章:MySQL · 性能優(yōu)化 · 條件下推到物化表

7. 提前縮小范圍

先上初始SQL語(yǔ)句:

SELECT?*?
FROM???my_order?o?
???????LEFT?JOIN?my_userinfo?u?
??????????????ON?o.uid?=?u.uid
???????LEFT?JOIN?my_productinfo?p?
??????????????ON?o.pid?=?p.pid?
WHERE??(?o.display?=?0?)?
???????AND?(?o.ostaus?=?1?)?
ORDER??BY?o.selltime?DESC?
LIMIT??0,?15?

該SQL語(yǔ)句原意是:先做一系列的左連接,然后排序取前15條記錄。從執(zhí)行計(jì)劃也可以看出,最后一步估算排序記錄數(shù)為90萬(wàn),時(shí)間消耗為12秒。

+----+-------------+-------+--------+---------------+---------+---------+-----------------+--------+----------------------------------------------------+
|?id?|?select_type?|?table?|?type???|?possible_keys?|?key?????|?key_len?|?ref?????????????|?rows???|?Extra??????????????????????????????????????????????|
+----+-------------+-------+--------+---------------+---------+---------+-----------------+--------+----------------------------------------------------+
|??1?|?SIMPLE??????|?o?????|?ALL????|?NULL??????????|?NULL????|?NULL????|?NULL????????????|?909119?|?Using?where;?Using?temporary;?Using?filesort???????|
|??1?|?SIMPLE??????|?u?????|?eq_ref?|?PRIMARY???????|?PRIMARY?|?4???????|?o.uid?|??????1?|?NULL???????????????????????????????????????????????|
|??1?|?SIMPLE??????|?p?????|?ALL????|?PRIMARY???????|?NULL????|?NULL????|?NULL????????????|??????6?|?Using?where;?Using?join?buffer?(Block?Nested?Loop)?|
+----+-------------+-------+--------+---------------+---------+---------+-----------------+--------+----------------------------------------------------+

由于最后WHERE條件以及排序均針對(duì)最左主表,因此可以先對(duì)my_order排序提前縮小數(shù)據(jù)量再做左連接。SQL重寫后如下,執(zhí)行時(shí)間縮小為1毫秒左右。

SELECT?*?
FROM?(
SELECT?*?
FROM???my_order?o?
WHERE??(?o.display?=?0?)?
???????AND?(?o.ostaus?=?1?)?
ORDER??BY?o.selltime?DESC?
LIMIT??0,?15
)?o?
?????LEFT?JOIN?my_userinfo?u?
??????????????ON?o.uid?=?u.uid?
?????LEFT?JOIN?my_productinfo?p?
??????????????ON?o.pid?=?p.pid?
ORDER?BY??o.selltime?DESC
limit?0,?15

再檢查執(zhí)行計(jì)劃:子查詢物化后(select_type=DERIVED)參與JOIN。雖然估算行掃描仍然為90萬(wàn),但是利用了索引以及LIMIT 子句后,實(shí)際執(zhí)行時(shí)間變得很小。

+----+-------------+------------+--------+---------------+---------+---------+-------+--------+----------------------------------------------------+
|?id?|?select_type?|?table??????|?type???|?possible_keys?|?key?????|?key_len?|?ref???|?rows???|?Extra??????????????????????????????????????????????|
+----+-------------+------------+--------+---------------+---------+---------+-------+--------+----------------------------------------------------+
|??1?|?PRIMARY?????|??|?ALL????|?NULL??????????|?NULL????|?NULL????|?NULL??|?????15?|?Using?temporary;?Using?filesort????????????????????|
|??1?|?PRIMARY?????|?u??????????|?eq_ref?|?PRIMARY???????|?PRIMARY?|?4???????|?o.uid?|??????1?|?NULL???????????????????????????????????????????????|
|??1?|?PRIMARY?????|?p??????????|?ALL????|?PRIMARY???????|?NULL????|?NULL????|?NULL??|??????6?|?Using?where;?Using?join?buffer?(Block?Nested?Loop)?|
|??2?|?DERIVED?????|?o??????????|?index??|?NULL??????????|?idx_1???|?5???????|?NULL??|?909112?|?Using?where????????????????????????????????????????|
+----+-------------+------------+--------+---------------+---------+---------+-------+--------+----------------------------------------------------+

8. 中間結(jié)果集下推

再來(lái)看下面這個(gè)已經(jīng)初步優(yōu)化過(guò)的例子(左連接中的主表優(yōu)先作用查詢條件):

SELECT????a.*,?
??????????c.allocated?
FROM??????(?
??????????????SELECT???resourceid?
??????????????FROM?????my_distribute?d?
???????????????????WHERE????isdelete?=?0?
???????????????????AND??????cusmanagercode?=?'1234567'?
???????????????????ORDER?BY?salecode?limit?20)?a?
LEFT?JOIN?
??????????(?
??????????????SELECT???resourcesid,?sum(ifnull(allocation,?0)?*?12345)?allocated?
??????????????FROM?????my_resources?
???????????????????GROUP?BY?resourcesid)?c?
ON????????a.resourceid?=?c.resourcesid

那么該語(yǔ)句還存在其它問(wèn)題嗎?不難看出子查詢 c 是全表聚合查詢,在表數(shù)量特別大的情況下會(huì)導(dǎo)致整個(gè)語(yǔ)句的性能下降。

其實(shí)對(duì)于子查詢 c,左連接最后結(jié)果集只關(guān)心能和主表resourceid能匹配的數(shù)據(jù)。因此我們可以重寫語(yǔ)句如下,執(zhí)行時(shí)間從原來(lái)的2秒下降到2毫秒。

SELECT????a.*,?
??????????c.allocated?
FROM??????(?
???????????????????SELECT???resourceid?
???????????????????FROM?????my_distribute?d?
???????????????????WHERE????isdelete?=?0?
???????????????????AND??????cusmanagercode?=?'1234567'?
???????????????????ORDER?BY?salecode?limit?20)?a?
LEFT?JOIN?
??????????(?
???????????????????SELECT???resourcesid,?sum(ifnull(allocation,?0)?*?12345)?allocated?
???????????????????FROM?????my_resources?r,?
????????????????????????????(?
?????????????????????????????????????SELECT???resourceid?
?????????????????????????????????????FROM?????my_distribute?d?
?????????????????????????????????????WHERE????isdelete?=?0?
?????????????????????????????????????AND??????cusmanagercode?=?'1234567'?
?????????????????????????????????????ORDER?BY?salecode?limit?20)?a?
???????????????????WHERE????r.resourcesid?=?a.resourcesid?
???????????????????GROUP?BY?resourcesid)?c?
ON????????a.resourceid?=?c.resourcesid

但是子查詢 a 在我們的SQL語(yǔ)句中出現(xiàn)了多次。這種寫法不僅存在額外的開(kāi)銷,還使得整個(gè)語(yǔ)句顯的繁雜。使用WITH語(yǔ)句再次重寫:

WITH?a?AS?
(?
?????????SELECT???resourceid?
?????????FROM?????my_distribute?d?
?????????WHERE????isdelete?=?0?
?????????AND??????cusmanagercode?=?'1234567'?
?????????ORDER?BY?salecode?limit?20)
SELECT????a.*,?
??????????c.allocated?
FROM??????a?
LEFT?JOIN?
??????????(?
???????????????????SELECT???resourcesid,?sum(ifnull(allocation,?0)?*?12345)?allocated?
???????????????????FROM?????my_resources?r,?
????????????????????????????a?
???????????????????WHERE????r.resourcesid?=?a.resourcesid?
???????????????????GROUP?BY?resourcesid)?c?
ON????????a.resourceid?=?c.resourcesid

AliSQL即將推出WITH語(yǔ)法,敬請(qǐng)期待。

總結(jié)

  1. 數(shù)據(jù)庫(kù)編譯器產(chǎn)生執(zhí)行計(jì)劃,決定著SQL的實(shí)際執(zhí)行方式。但是編譯器只是盡力服務(wù),所有數(shù)據(jù)庫(kù)的編譯器都不是盡善盡美的。上述提到的多數(shù)場(chǎng)景,在其它數(shù)據(jù)庫(kù)中也存在性能問(wèn)題。了解數(shù)據(jù)庫(kù)編譯器的特性,才能避規(guī)其短處,寫出高性能的SQL語(yǔ)句。
  2. 程序員在設(shè)計(jì)數(shù)據(jù)模型以及編寫SQL語(yǔ)句時(shí),要把算法的思想或意識(shí)帶進(jìn)來(lái)。
  3. 編寫復(fù)雜SQL語(yǔ)句要養(yǎng)成使用WITH語(yǔ)句的習(xí)慣。簡(jiǎn)潔且思路清晰的SQL語(yǔ)句也能減小數(shù)據(jù)庫(kù)的負(fù)擔(dān) ^^。
  4. 使用云上數(shù)據(jù)庫(kù)遇到難點(diǎn)(不局限于SQL問(wèn)題),隨時(shí)尋求阿里云原廠專家服務(wù)的幫助。


后臺(tái)回復(fù)?學(xué)習(xí)資料?領(lǐng)取學(xué)習(xí)視頻


如有收獲,點(diǎn)個(gè)在看,誠(chéng)摯感謝

瀏覽 29
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)
評(píng)論
圖片
表情
推薦
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 在线一区观看| 亚洲成人无码网站| 精品三级网站| 精品人妻一区二区三区日产乱码| 一级调教看片| 国产av影院| 无码一区二区三区四| 色老板视频在线观看| 男人V天堂| 五月天四房播播| 五月天激情午夜福利| 强奸乱伦制服丝袜| 99成人国产精品视频| 人人澡人人爽| 亚洲色图片区| 无码视频在线免费播放| 黑人无码AV| 亚洲精品字幕久久久久| 蜜桃91精品秘入口| 性BBwBBwBBwBBw禽| 制服丝袜强奸乱伦| 91在线无精精品秘白丝| 国产多人搡BBBB槡BBBB| 9l视频自拍九色9l视频成人| av東熱激情东京热| 大香蕉九九| 亚洲精品字幕久久久久| S28AV| 嫩草av| 草久在线视频| 日韩精品视频一区二区| 91丨九色丨熟女丰满| 国产在线A片| 69国产精品视频免费观看| 久久不雅视频| 成人在线视频一区| 亚洲高清视频一区| 秋霞无码一区二区三区| 国产无码av| 亚洲精品久久久久久| a在线免费| 亚洲无码电影网站| 丁香五月婷婷在线| 国产秘精品一区二区三区免费| 大香蕉9999| 婷婷五月天电影网| 久久AV电影| 天天澡日日久| 人人爱人人操人人爽| 成人做爰100部片视频| 日韩欧美不卡色不卡| 黄色视频免费在线观看| 天天操天天日天天干| 色婷婷精品| 亚洲卡一卡二| 亚洲,制服,综合,中文| ThePorn日本无码| 西西人体444rt高清大胆模特| 久久嫩草国产成人一区| 天天日比| 国产操逼小视频| 人人色在线观看| 成人综合娱乐网| 嫩BBB搡BBB搡BBB四川| 高清在线无码视频| 国产又粗又长又硬又大毛苴茸图片| 激情婷婷av| 国产精品探花熟女AV| 亚州一级成人片| 亚洲无码AV麻豆| 人妻japanesewoman| 天天干天天摸| 亚洲一级二级| 天堂无码视频| 久久久精品| 高清无码网站| 日韩操逼视频| 国产激情都市一区二区三区欧美 | 草视频| 亲子乱AⅤ一区二区三区| 国产精品视频福利| 天堂在线中文字幕| 一本一道AV| 免费亚洲无码| 中文无码日本一级A片久久影视| 夜夜骑夜夜| 水蜜桃在线观看视频| 国产黄色免费观看| 亚洲天堂2025| 99热99精品| 亚洲无码一区二区在线观看| 欧美精品久久久久| 伊人五月天激情| 中文字幕第98页| 精品国产91| 日韩精品人妻中文字幕蜜乳| 日韩乱伦小说| 黄色福利视频| 成人黄色在线| 五月色婷婷撸| 色丁香视频在线观看的| 日日夜夜天天操| 麻豆三级精品| 色大香蕉伊人| 欧美日韩成人网| 国产一区二区不卡视频| 在线成人自拍| 久久无码专区| 国内精品久久久久久久久久| 豆花视频久久| 亚洲色图片区| 欧美级毛片一进一出夜本色| 手机在线观看AV| 日本精品中文字幕| 五月天伊人| 大鸡巴视频在线观看| 欧美日视频| 天堂在线免费视频| 99亚洲精品| 国产AV资源| 天天操天天干欧美精品| 黄网在线观看视频| A视频免费在线观看| 一区二区三区高清不卡| 国产成人秘在线观看免费网站 | 国产三级视频| 韩国中文字幕HD久久| 偷拍九九热| 青青免费视频| 男女性爱视频网站| 尤物yw| 熟妇槡BBBB槡BBBB图| 日本一区二区三区在线播放| 在线免费毛片| 色欲插插| 伊人网综合| 肏亚洲美女| 最新久欠一区二区免费看| 色老板在线精品免费观看| 中文字幕亚洲人妻| 蜜桃视频日韩| 伊人国产视频| 欧美成人午夜视频| 秋霞一级| 成人超碰在线| 亚洲永久在线| 日韩免费网| 欧美亚洲国产一区二区三区| 日日搔av一区二区三区| 中文电视剧字幕在线播放免费视频 | 国产美女做爱视频| 国产aa片| 好吊妞在线| 亚洲午夜视频在线观看| 亚洲AV无码A片在线观看蜜桃| 殴殴美日韩在线| 婷婷成人五月天| 国产一精品一aⅴ一免费| 美女性爱视频网站| 天天天天天天天天操| 婷婷色AV| 久久凹凸视频| 狠狠久久| 嫩BBB槡BBBB槡BBB小号| 另类老妇奶性生BBwBBw偷拍| 免费版成人久久幺| 粉嫩99精品99久久久久久夜| 黑人大香蕉| 成人无码专区| 在线观看高清无码中文字幕| 亚洲无码一区二区三区妃光 | 精品尤物在线| 91大神在线观看入口| 国产精品婷婷午夜在线观看| 久久久777| 国产97视频| 午夜操一操一级| 偷拍内射| 亚洲XXXXX| 日韩性做爰免费A片AA片| 久久免费视频精品| 午夜国产视频| 免费AV黄色| 影音先锋三级资源| 日韩不卡视频在线| 99视频久久| 亚洲午夜福利在线观看| 天天天日天天天操| 黄色片亚洲| 特色毛片| 欧美精品第一页| 国内自拍视频在线观看| 午夜色色福利| 亚洲xxxxxx| 99精品视频16在线免费观看| 色婷婷在线观看视频| 女人的天堂av| 人妻japanesewoman| 在线观看黄色小电影| 无码人妻在线播放| 久草新视频| 久久精品成人电影| 一级黄色蜜芽视频| 天天干婷婷五月天| 翔田千里| 四虎影院色| 91av一区二区三区| 波多野结衣无码AV| 亚洲精品一区二区三区在线观看| 日韩小电影| 大香蕉伊人青青草| 日韩中文字幕在线人成网站| 国产精品18禁| 国产www| 亚洲国产A片| eeuss在线| 日韩成人一区二区| 欧美A片视频| 自拍无码视频| 婷婷五月天色综合| 91啦丨露脸丨熟女色啦| 狠狠色婷婷7777| 1024国产在线| 国产无码AV成在线| 亚洲无码成人片| 这里有精品| 亚洲精品国产精品乱码不卡√香蕉| 男人操女人免费网站| 综合AV| 欧美性爱中文字幕| 日韩主播在线| 停停六综合| 韩国无码专区| 亚洲天堂在线观看视频| 亚洲精品美女视频| 午夜福利影片| 欧美三级| 蝌蚪窝免费在线视频| 五月婷在线观看| 久久女人视频| 久久99久久99久久| 亚洲成年人在线| 免费91视频| 大香蕉在线观看视频| 久操久操久操| 国产精品三级视频| 日韩三级小说| 又爽又黄免费网站97双女| 大香蕉a片| www.51av| 做爱视频毛片人乱| 国产成人亚洲精品| 欧美精品区| gay成人在线观看| 91av在线观看视频| 亚洲免费黄片| 超碰在线观看97| 亚洲国产精| www.插插| 伊人大香蕉在线观看| 国产精品一级无码免费播放| 黄色电影A| 黄网免费在线观看| 无码精品人妻一区二区欧美| ww免费视频| a免费视频| 精品孕妇一级A片免费看| 四川BBB搡BBB爽爽爽电影| 天堂亚洲| 777国产盗摄偷窥精品0000| 亚洲成人精品一区二区| 日韩一级欧美一级| 精品蜜桃秘一区二区三区观看| 无码水蜜桃一区二区| 欧洲成人在线| 色老师综合| 操屄网站| 777在线视频| 久久国产2025| 做爱视频无码| 操逼日爱| 五月丁香欧美综合| 国产在线拍揄自揄拍无码福利| 国产精品久久久一区二区三区 | 成人看片黄a免费看视频| 成人做爰免费网站2023| 毛片日韩| 影音先锋AV啪啪资源| 五月丁香婷婷开心| 99性爱| 欧美日韩中文字幕无码| 嫩草在线播放| 草莓视频在线播放| 国产A片免费视频| 特黄AAAAAAAA片免费直播| 四虎精品影院| 日韩一区二区三区在线视频| 亚洲69p| AV一区二区三区| 成人五区| 欧美三级在线视频| 91精品久久久久久综合五月天| 亚洲无码在线视频播放| 国产精品视频一区二区三| 亚洲AV成人一区二区三区不卡 | 中文字幕第二页| 午夜视频99| 亚洲免费观看高清完整版在线观| 17.3c一起起草| 另类老妇奶性生BBwBBw偷拍| 国产成人无码在线| 韩日A片| 亚洲日韩精品在线观看| 国产一级黄色电影| 自拍欧美亚洲| 天天色天天干天天日| 国产女人高潮的AV毛片| 大香蕉久热| 欧美久久一区二区三区四区视频| 男人天堂久久| www久久| 免费在线观看AV网站| 青青草成人在线| 亚洲精品无码中文| 精品人妻二区中文字幕| 无码国产传媒精品一区| 色色A| 国产高清视频| 日韩毛片在线看| 亚洲性爱AV| 年轻女教师高潮2| 亚洲一页| 五月丁香人妻| 七十路の高齢熟女千代子| 自拍偷拍一区二区三区| 日韩亚洲视频| 卡一卡二卡三| 亚洲天堂视频在线观看免费| 中文字幕福利电影| 日韩在线成人视频| 91成人做爰A片| 欧美mv日韩mv国产| 国产av福利| 精品久久大香蕉| 亚洲97| 日本草逼网| 成人欧美大片黄18| 精品秘一区性综合三区| 国产在线导航| 人人色人人草| 久久成人综合| 亚洲欧美激情小说另类| 国产一级片免费看| 大香蕉伊人电影| 亚洲熟妇无码| 97色色婷婷五月天| 久久亚洲av| 欧美A片在线免费观看| 性插视频| 国产乱码一区二区三区| av资源在线播放| 欧美日韩V| 国产一区二区三区免费视频| 91综合在线观看| 一级A黄色片| 婷婷五月六月| 成人AV免费在线观看| 久久精品婷婷| 久热国产视频| 欧美日韩婷婷| 九九热九九| 亚洲在线无码| 国产高清AV| 91在线一区二区三区| 欧美日本成人网站入口| 日韩无码五月天| 免费一级婬片AAA片毛片A级| 浮力影院欧美| 久久中文字幕无码| 三级片91| 国产日逼片| 日韩高清一区| 国产足交视频| 亚洲天媒在线播放| 亚洲成人AV无码| 国际精品久久久| 久久久久逼| 高清无码视频在线| 成人做爰黄A片免费看陈冠| 1000部毛片A片免费视频| 黄色一级网站| 嘉兴少妇按摩69XX| 黑人干亚洲人| 无码成人午夜在线影院| 日本性爱网址| 大香蕉在线精品视频| 一级特黄A片| 欧美成人视频在线观看| 天天射夜夜操| 亚洲va在线∨a天堂va欧美va| 欧洲成人在线观看| 五月丁香在线播放| 日韩a片| 深夜福利一区二区| 蜜臀AV在线| 18禁av在线| 亚洲wwwwww| 欧美级毛片一夜| 人人天天久久| 色婷婷久久综合久色| 性中国熟妇| 北条麻妃一区二区三区在线观看| 日韩高清无码一区二区三区| 尤物视频入口| 欧美老妇另类| 老太色HD色老太HD-百度| 国产熟女一区二区视频网站| 特级西西444WWW视频| 午夜无码福利视频| 午夜国产码网站码| 在线国产福利| 夜夜嗨av无码一区二区三区| 西西人体大胆ww4444多少集| 翔田千里无码一区| 91香蕉视频18| 97人妻精品一区二区三区图片 | 国产亚洲精品成人a| 久操视频在线观看| 国产视频一区二区三区四区五区| 欧美怡红院视频| www国产亚洲精品久久网站| 婷婷午夜精品久久久久久| а√天堂中文最新版8| 干干日日| 超碰九九热| 久久内射| 99综合视频| 操比无码| 在线观看免费黄色视频| 丝瓜av| 日韩中文字幕一区二区| 91成人亚洲| 狠狠躁日日躁夜夜躁A片小说免费| 日韩人妻无码网站| 亚洲A片在线观看| 亚洲天堂大香蕉| 亚洲性夜夜天天天天天天| 欧美视频在线一区| 欧美中文字幕视频| 中国无码专区| 水蜜桃91| 爱就色色网| 国产精品国内自产拍| www.91n| 国产乱伦内射视频| 竹菊影视一区二区三区| 婷婷免费视频| 中文字幕日韩亚洲| 自拍毛片| 热久久久| 日韩中文字幕免费在线观看| 蜜臀成人片| 无码专区一区二区三区| 国产视频在线播放| 一级片电影网站| 黄色片A| 国产69页| 高清无码视频免费版本在线观看| 国产a区| 丰满熟妇| 人人草人人舔| 少妇BBBBBB| 韩国高清无码视频| 色香蕉影院| 色大香蕉伊人| 一本大道东京热av无码| 亚洲视频高清无码| 97播播| 超碰91在线| 婷婷久久亚洲| 18害羞勿进网站国产| 久久久www| 亚洲日韩中文字幕在线| 99久久99久久精品免费看小说。| 日韩久久久| 51黄片| 亚洲无码成人视频| 免费成人视频在线观看| 欧美成人网站视频| 99热欧美| 亚洲第一黄片| 国产精品人人| 性视频人人| 一级片无码| 天天摸天天干| 中日韩黄色视频| 日韩女人性爱| 操逼操逼操逼操逼| 日韩中文字幕在线免费观看| 三级视频网址| 精品无码产区一区二| 蜜臀精品| 日韩区在线| 影音先锋91视频| 高清无码视频在线观看| 欧一美一婬一伦一区二区三区黑人| 成人福利视频在线观看| 91AV久久| 国产成人+综合亚洲+天堂| 欧美性爱一区二区三区| 国产一级a毛一级a毛视频在线网站) | 黄色操逼大片| 久久黄色成人视频| 日本三级网站| 欧美中文字幕在线视频| 黄色A片电影| 蜜芽视频| 九九九九精品视频| 人妻少妇精品视频| 性满足BBWBBWBBW| 91人妻无码精品一区二区三区| 超碰日日夜夜| 白洁91视频| 日韩视频免费| 日本一区免费| 美女天天日| 中文字幕精品一区久久久久| 国产成人+综合亚洲+天堂| 79色色| 日韩欧美国产成人| 黄色a一级| 老女人操屄| mm131亚洲国产精品久久| 波多野成人无码精品69| 午夜精品影院| 在线亚洲欧洲| 香蕉视频a| 久久午夜无码鲁片午夜精品男男| 91拍真实国产伦偷精品| 免费一级A毛片夜夜看| 成人在线中文| www亚洲| 国产精品怡红院有限公司| 无码高清一区二区| 无码av中文字幕| 日日射天天干| 日批视频免费观看| 国产精品系列视频| 久久草| 欧美后门菊门交| 爱搞搞网| 66久久| 欧美色爽| 日韩欧美国产成人| 吴梦梦《女教师时间暂停》| 免费一级无码婬片A片APP直播| 2025国产成人精品一区| 91成人视频在线免费观看| 亚洲一二三四区| 97资源视频| 日韩毛片| 国产午夜成人福利在线| 99久在线精品99re8热| 成年人视频免费看| 亚洲毛片网站| 亚洲少妇性爱视频| 九九九热精品| 免费高清无码| 亚洲一级黄| 男女啪啪网| 成人性生活片| 无码爆操| 18网站视频| 国产成人综合亚洲| 女色综合| av在线天堂| 亚洲V视频| 无码av免费精品一区二区三区| 欧美另类综合| 肏屄视频网| 激情国产精品| 作爱免费视频| 九七色色电影| 丁香五香天堂网| 国产熟妇码视频| 中文字幕视频在线播放| 亚洲特级毛片| 蜜臀久久99精品久久久久酒店更新时间 | 亚洲黄色免费网站| 日韩成人A片| 亚洲性天堂| 日本色电影在线观看| 乱伦乱码| 天天射天天日天天干| 亚洲成a人无码| 亚洲午夜无码精品专区| 日本高清一区二区高清免费视频 | 天堂a√中文8| 国产传媒在线观看| 国产精品A片守望| 国产学生妹在线播放| 国产无套免费网站69| 无码中文字幕在线视频| 亚洲大逼| 四虎影院色| 亚洲天堂在线视频播放| 激情小视频在线观看| 噜噜噜AV| 欧美老妇BBBBBBBBB| 丁香花中文字幕| 性做久久久久久| 美日韩三级| 精品一区二区三区四区| 亚洲午夜剧场| 亚洲色诱| 玉米地一级婬片A片| 狠狠狠狠狠狠| 青草91| 97一区二区三区| 国产真实乱婬A片三区高清蜜臀 | 国产黄色片在线播放| 999久久久精品| 九九美女视频| 高清无码久久| 波多野结衣被操| 91香蕉国产在线观看| AV一二区| www99国产| 黄色带亚州| 水果派成人播放无码| 一本到在线观看午夜剧场| 午夜3D动漫AV| 欧美高清在线综合| 伊人狼人香蕉| 一线天嫩穴少妇| 日本爱爱视频| 国产一卡二卡| 欧美性受XXXX黑人XYX性爽| 午夜精品视频| 日韩三级电影| 亚洲中文在线观看| 国产三级电影| 国产香蕉视频| 黄色A片约| 2025精品精品视频| 国产高清做爱免费在线视频| 久久国产黄色一级片| 无码av无码AV| 欧美黄色激情视频网站| 天天天日天天天操| 日韩精品一区二区三区四在线播放| 日韩午夜欧美精品一二三区| 伊人色色视频| 国产一区二区免费看| 九九九九精品视频| 日韩va亚洲va欧美va高清| 麻豆91精品91久久久停运原因| 夜夜夜久久久| 亚洲欧美在线一区| 日日夜夜超碰| 影音先锋91视频| 五月天久久久久久久| 乱伦无码| 亚洲无码免费看| 亚洲无码偷拍| 黄色激情五月天| 97爱| 成人黄色在线| 美女一级变态毛片| 就操| 无毛无码| 91视频青青草| 精品视频久| 国产成人精品亚洲男人的天堂 | 欧美日韩久久久| 国产操骚逼| 欧美性猛交XXXX乱大交HD| 狼人一区二区| 最新黄色av| 俺去俺来也WWW色老板| 欧美成人在线视频网站| 久久久久一| 成人免看一级a一片A片| 天堂在线无码| 人人妻人人操人人| 爱搞在线观看| 久久99精品久久久久久水蜜桃| 午夜69成人做爱视频网站| 三级无码电影| 情侣av| 日韩乱伦电影| 人人插人人操| 亚洲欧美成人在线| 巨い巨乳の少妇あジed2k | 爱爱视频天天操| 天堂在线网| 亚洲性爱在线视频| 久久一卡二卡| 久久AV影院| 色播五月婷婷| 91视频精品| 91在线视频观看| 亚洲国产女人| 亚洲精品久久久久毛片A级牛奶 | 久久免费黄色| 91成人精品视频| 国产高清在线观看| 人人干人人摸| 国产变态另类| 国产精品九九视频| 蜜芽视频| 操逼爽| 波多野结衣一区二区三区在线观看| 久久国产黄色视频| 西西人体大胆ww4444| 中国操逼网| 淫秽视频免费看| 国产g蝌蚪| 婷婷五月六月| AV天堂资源| 亚洲精品suv视频| www四虎com| 国产成人AV网站| 亚洲国产成人精品女人| 蜜桃精品一区二区三区美女| 尤物综合网| 老女人肏屄视频| 在线观看视频你懂的| 三上悠亚无码破解69XXX| 人人操人人草| 日韩免费一级片| 国产一级A片| 精品国产一二三| 日本一区中文字幕| 91亚洲免费视频| 九九99热| 91丨熟女丨首页| 高潮视频在线观看| 国产一级婬片A片免费妖精视频| 最新毛片网站〖网:.〗| 男女黄色免费网站| 人人摸人人操人人干| 三级黄色毛片| 日本无码在线播放| 欧美一级a| 亚洲AV无码一区毛片AV| 亚洲色a| 中文字幕无码在线观看视频| 欧美三级美国一级| 大色网小色网| 性爱无码| h在线| AA视频网站| 亚洲.无码.制服.日韩.中文字幕 | 午夜婷婷| 国内综合久久| 东北A片| 国产伦精品一区二区三区视频女 | 一道本高清无码视频| 国产精品成人免费精品自在线观看 | 欧美伊人| 国产乱伦影片| 中文字幕AV网| 欧洲成人午夜精品无码区久久| 熟妇人妻中文AV| 亚洲中文字幕第一页| 日本三级AAA三级AAAA97| 成年片免费观看网站免费观看,亚洲+欧... | 丁香五月婷婷基地| AAA久久| 日本免费中文字幕| 影音先锋资源| 日韩av电影免费在线观看| 影音先锋色AV| 国产乱伦对白| 四虎无码| 嫩草Av| 草草操| 国产精品高潮呻吟久久| 69式荫蒂被添全过程频| 少妇一区二区三区| 人人爽网站| 国产三级片91| 九九激情| 久草这里只有精品| 国产精品久久久久久久免牛肉蒲 | 亚洲九九九| 自慰一区| 在线免费观看黄色视频网站| 在线视频免费观看| 黄色片在线免费观看| 黄色大片中国一级片-免费看特一级片-亚洲黄色AV | 亚洲日韩国产中文字幕| 日韩久久久久| 亚洲精品在线看| 精品免费视频| 西西444WWW无码大胆在线观看| 中文字幕av久久爽爽| 五月婷亚洲精品AV天堂| 午夜成人福利电影| 黄色一级aa片| 77777精品成人免费A片| 夜夜撸网站| 91色欲| 一区二区高清无码视频| 国内自拍视频网| 久久久亚洲无码精品| 爱搞逼综合网| 综合激情视频| 国产成人精品777777| 天天天天天天操| 免费视频一区| 无码人妻一区二区三区三| 探花在线综合| 婷婷伊人綜合中文字幕| 欧美footjob高跟脚交| 无码人妻中文| XXXXⅩHD亚洲人HD| 日韩av电影在线观看| 米奇电影777无码| 中文字幕欧美激情| 高清无码自拍| 国产A级毛片| 福利导航页| 亚洲视频网站在线观看| 91丨九色丨熟女老版| 久久无码免费| 亚洲射色| 成人AV中文解说水果派| 欧美视频一区| 天天天做夜夜夜爽无码| 亚洲一区二区三区视频| 91麻豆成人| 亚洲成人人妻| 日韩人妻精品中文字幕专区不卡| 大香伊人久久| 999成人电影| 黄色av免费网站| 懂色av粉嫩av蜜臀av| 99热在线播放| 97婷婷五月天| 伊人狠狠蜜桃亚洲综合| 天天日夜夜爽| 日本黄色大片网站| 天天看天天摸| 无码视频在线免费观看| 在线不卡无码| 国产一级片网站| 欧美色道| 男女做爱无码| 性无码一区二区三区在线观看| 香蕉视频国产| 国产精品无码成人AV电影| 欧美亚洲图区| 亚洲a在线观看| 国产91免费视频| 婷婷五月开心五月| 国产伦子伦一级A片免费看小说| 日本AA视频| 日韩色在线| 色人人| 有免费的欧美操逼视频吗| 日韩亚洲天堂| 高潮视频在线观看| 日本日逼网| 精品91视频| 亚洲天堂在线视频| 国产亚洲无码激情| 欧美日韩无码| 人妻无码A| 777三级| 这里都是精品| 国产午夜福利免费视频在线观看 | 国产精品成人免费精品自在线观看 | 99伊人在线| 麻豆成人精品国产免费| 六月色婷婷| 在线观看黄色小电影| 无码视频韩国| 国产中文字幕在线观看| 久久精彩免费视频| 国产精品自拍小视频| 黄色大片av| 中文字幕无码网站| 99在线免费观看| 怡红院成人在线| 精品国产精品| av干在线| 强伦轩一区二区三区在线观看| 九九偷拍| 97人人操人人干| 做爰视频毛片下载蜜桃视频。| 蜜桃一区二区视频在线观看| 在线播放一区二区三区| 成人无码三级| 菊花插综合网| 在线观看黄A片免费网站| 青青草手机视频| 天天草天天爽| 中文字幕一区二区三区四区五区六区 |