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

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

共 14917字,需瀏覽 30分鐘

 ·

2020-10-02 18:34


作者:db匠? 來(lái)源:阿里云棲社區(qū)? ?鏈接:

https://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ù),而不是程序員的原意?,F(xiàn)在應(yīng)用框架很多很繁雜,使用方便的同時(shí)也小心它可能給自己挖坑。

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

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

重寫(xiě)為 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),我們按照下面的方法重寫(xiě)后,執(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ù)雜的視圖或子查詢的情況有:

  • 聚合子查詢;

  • 含有 LIMIT 的子查詢;

  • UNION 或 UNION ALL 子查詢;

  • 輸出字段中的子查詢;

如下面的語(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ǔ)義上查詢條件可以直接下推后,重寫(xiě)如下:

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)參考文章:

http://mysql.taobao.org/monthly/2016/07/08

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 重寫(xiě)后如下,執(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ù)。因此我們可以重寫(xiě)語(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)了多次。這種寫(xiě)法不僅存在額外的開(kāi)銷,還使得整個(gè)語(yǔ)句顯的繁雜。使用 WITH 語(yǔ)句再次重寫(xiě):

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

總結(jié)

數(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ī)其短處,寫(xiě)出高性能的SQL語(yǔ)句。

程序員在設(shè)計(jì)數(shù)據(jù)模型以及編寫(xiě)SQL語(yǔ)句時(shí),要把算法的思想或意識(shí)帶進(jìn)來(lái)。

編寫(xiě)復(fù)雜SQL語(yǔ)句要養(yǎng)成使用 WITH 語(yǔ)句的習(xí)慣。簡(jiǎn)潔且思路清晰的SQL語(yǔ)句也能減小數(shù)據(jù)庫(kù)的負(fù)擔(dān) 。

(完)


點(diǎn)「在看」的人都變好看了哦
瀏覽 48
點(diǎn)贊
評(píng)論
收藏
分享

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 性爱视频免费| 三级小说| 特级西西人体444www高清| 日韩黄色电影在线免费观看| 欧美日韩中文字幕在线观看| 中文在线字幕免费观看电视剧大全| 黄色免费在线网站| 双腿张开被9个男人调教| 爱爱帝国综合社区| 色婷婷丁香五月天| 91人妻人人人人爽| 熟女人妻在线观看| 中文观看| 免费观看成人毛片A片直播千姿| 日韩精品欧美一区二区三区| 天天色天天干天天日| 美女久久| 欧美人人爱| 99久久人妻无码中文字幕系列 | 操逼视频网站免费| 综合黄色| 国产一精品| www.操逼| 久久久久网站| 亚洲无码制服| 日韩av在线电影| 国产黄色自拍| 天堂网资源| 在线观看免费欧美操逼视频 | 午夜黄色电影| 97人妻人人揉人人躁人人| 国产成人午夜精品无码区久久麻豆| 国产中文字幕在线免费观看| 日韩一级在线视频| 美日韩精品| 另类罕见稀奇videos| 色婷婷亚洲色| 亚洲人成免费| 好吊视频一区二区三区红桃视频you| 91人妻人人人人爽| 密臀av在线| 中文字幕日韩亚洲| 久久你懂的| adn日韩av| 在线看a片| 国产精品自拍小视频| 国产精品一区二区不卡| 五月天久久久久| 亚洲一二三四区| 炮友五月天| AA黄色电影| 日本黄色片| 日韩中文字幕av| 午夜成人免费视频| 亚洲无码高清视频在线| 婷婷久久综合久| 日韩精品在线视频观看| 国产女人与禽zOz0性| 亚洲插逼视频| 操一操干一干| 日本三级网址| 亚洲无码久久| 国产午夜福利视频| 日韩欧美性爱| 日本中文字幕电影| 伊人精品视频| 亚洲免费三级| 日韩一级无码特黄AAA片| 欧美sesese| 人操人操人操| 五月天黄色片| 国产亚洲精品午夜福利巨大软件| 久草大香蕉在线| 91传媒在线免费观看| 国产精品乱草| 鸭子AV| 狠狠综合| 免费在线a| 麻豆乱码国产一区二区三区| 成人无码一区二区| 国产人成一区二区三区影院| 亚洲视频免费播放| 人妻FrXXeeXXee护士| 中文字幕观看在线| 亚洲无码影片| 国产精品1区| 免费黄片视频在线观看| 嫩草视频在线观看| 一级A级毛片| 欧美一区二区三区成人片在线| 日本免费无码| 三级无码片| 无码av免费| 新BBWBBWBBWBBW| 国产18禁网站| 三级无码在线播放| 人妻18无码人伦一区二区三区精品| 午夜视频18| 岛国免费视频| 亚洲日韩在线视频播放| 欧美va视频| 成人777777| 大逼影院| 日韩无码中文字| 91无码高清视频| 靠逼国产| 四色五月婷婷| 99在线观看视频在线高清| 一级A片久久久免费直播间| 91久久性奴调教| 黄色性视频| 黄色性视频| 亚洲国产成人精品激情在线| 亚洲欧美高清视频| 120分钟婬片免费看| 一道本不卡视频| 久久精品片| 国产无遮挡又黄又爽又| 视频一区在线播放| 人妻无码精品蜜桃| 日欧视频| 欧美AAA| 亚洲无码高清免费| 九九精品免费视频| 青草99| 亚洲先锋影音| 午夜AV在线免费观看| av777777| 大陆一级片| 亚洲成人久久久| 婷婷六月综合| 99久久精品国产精品有折扣吗| 亚洲无码自拍偷拍| 无码一区二区三区在线| 香蕉久草| 日韩中文在线观看| 久久三级片| 亚洲免费MV| 成人手机AV| 天天日夜夜撸| 欧美国产日韩视频| 婷婷亚洲国产| 国产色悠悠| 日韩无码AV一区二区三区| 天堂色色| 久久黄色小视频| 天天操夜| 成人午夜福利电影| 青青草青娱乐| 中文字幕欧美日韩| AV日逼网| 伊人色爱| 色97| 北条麻妃AV观看| 中文字幕内射| 草草国产| www.一区二区| 91人妻无码成人精品一区二区| 国产性爱av| 麻豆精品| 国产牛牛在线| 久久久久久黄| 一级AAAAA片裸体做受| 欧美国产综合在线| 欧美AA视频| 五月天久久婷婷| 麻豆专区| 欧美日韩操| 色欲国产精品欧美在线密| 亚洲国产黄片| 蜜桃无码视频小说网站| 亚洲高清无码中字| 大香蕉免费网站| 粉嫩小泬BBBB免费看-百度| 中文字幕日韩视频| 爽好紧别夹喷水网站| 高清无码在线免费观看| 黄色视频在线免费观| 成人亚洲网| 久久久123| 黄色免费在线网站| 91久久久久国产一区二区| 北条麻妃人妻中文无码| 色天堂影院| 女神思瑞精品一区二区三区| 成人无码日本动漫电影| 亚洲欧洲日本在线| 无码av一区二区| 亚洲一区在线免费观看| 国产精品一区二区在线| 无码网址| 黑人AV在线播放| 俺去也在线播放| 日韩啪啪啪网站| 免费在线观看a片| 男人天堂V| 大香蕉视频在线观看| 国产中文人人国际| 北条麻妃九九九在线视频| 国产在线视频网站| 天天综合7799| 福利视频网站| 婷婷开心色四房播播在线| 亚洲熟妇AV日韩熟妇在线| 欧美中文字幕视频| 一区二区无码高清| 麻豆mdapp03.tⅴ| 国产精品秘久久久久久免费播放| AV网站入口| av无码免费在线观看| 特级西西人体444www高清大胆 | 国产在线黄片| 国产av一区二区三区| 小黄片高清无码| 欧美一级a视频免费放| A片网站在线观看| 国产毛片毛片毛片| 亚洲欧美成人在线| 日韩精品无码av| 蜜芽成人精品久久久视频| 露脸老熟女91集合| 中文字幕网址在线| 大香蕉av一区二区三区在线观看| 国产操逼图片| 人妻AV一区| 亚洲精品成人7777777| 欧美中文字幕在线观看| 中文无码日本高潮喷水| 超碰黄片| 午夜精东影业传媒在线观看| 亚洲视频一区二区| 亚欧成人在线视频| 熟女资源网| 特级婬片A片AAA毛片AA做头| 国产一级婬片A片| 国产精品怡红院有限公司| 狼友在线播放| 高清无码免费看| 中文AV在线播放| np高辣调教视频| 国产精品4| R四虎18| 欧美成人a片| 日韩精品欧美一区二区三区| 午夜成人无码视频| 97无码精品人妻一区二区三区| 亚洲中文字幕码mv| 国产欧美综合精品| 骚逼日本| 色色大香蕉| 中文人妻第9页| 手机看片福利视频| 亚洲AV无码成人专区| 北条麻妃无码视频在线观看| 久久亚洲中文字幕乱码| 色中色av| 免费看操片| 人人精品| 91久久久久久久久| 91人人操人人爽| www.91久久| 午夜成人大片| 日韩无码链接| 麻豆网站| 菊花插综合网| 欧美日韩一道本| 老司机av| 神马午夜av| 蜜桃Av噜噜一区二区三区四区| 情侣av| 甘肃WBBBB搡wBBBB| 中文√在线天堂8| 激情综合久久| 天堂综合网| 日逼老女人| 伊人综合视频| 丰滿老婦BBwBBwBBw| 欧美色逼| 国产丝袜在线视频| 日本三级在线| 3D精品啪啪一区二区三区| 影音先锋女人av噜噜色| 亚州AV| 亚洲无码一区二区在线| 日韩特一级| 麻豆偷拍| 亚洲91无码精品一区在线播放| 中文字幕成人A片| 日韩人妻在线视频| 一本到在线观看午夜剧场| 自拍天堂| www.国产精品| 手机在线成人视频| 成人免费精品视频| 蝌蚪窝在线观看| 3D动漫精品啪啪一区二区| 无码中文AV| 六月色| 综合视频一区| 69久久久| h片在线免费观看| 国产精品福利在线播放| 五月婷婷六月天| 色av影音先锋无吗一区| 国产乱子伦一区二区三区在线观看| 国产一级特黄A片| 国产午夜福利免费视频在线观看 | 99免费精品视频| 天天干天天上| 久久久成人免费视频| 日韩AV在线电影| 骚逼国产| 豆花视频logo| 午夜成人小视频| 人妻无码一区二区三区| 久久五月婷| 日本在线不卡视频| 无码777| 婷婷色色五月天图片| 久久无码在线观看| 日韩成人无码一区二区| 嘿咻嘿咻动态图| 呦小BBBB小小BBBB| 国产人国产视频成人免费观看… | 就去色色五月丁香婷婷久久久| 久操网在线| 永久黄网站| 友田真希一级婬片A片| 国产美女av| 青青操成人| 人人肏屄| 69久蜜桃人妻无码精品一区| 久久精品女同亚洲女同13| 人善交精品一区二区三区| 欧美A级黄片| 特级西西人体WWWWW| 招土一级黄色片| 色色激情五月天| 日韩视频免费在线观看| 无码国产99精品久久久久网站| 丁香五月影院| 欧美一道本在线| 国产久久精品| 大鸡巴日| 99国产热| 亚洲丝袜不卡| 中国熟女HD| 黄片在线视频| 欧美BBWBBWBBWBBWBBwBBW| 国产精品久久久久永久免费看| 你懂得视频在线观看| 日韩中文欧美| 青青激情视频| 97在线观看免费视频| 黄色电影一级| 三级黄色毛片| 操一操干一干| 大地影院资源官网| 日韩黄色A级片| 国产秘精品一区二区三区免费| 黄色视频在线观看亚洲一区二区三区免费 | 欧美人妻少妇| www.黄色av| 国产在线观看一区二区| 伊人日逼| 亚洲三级片在线视频| 亚洲青娱乐在线| 国产乱伦自拍| 亚洲国产免费视频| 中文字幕在线观| 天堂成人网站| 五月激情六月丁香| 亚洲男女内射| 97资源超碰| 内射一区二区三区| 91小宝寻花一区二区三区三级| 久久久精品淫秽色情| 欧美性爱一区二区三区| 免费观看一级黄片| 黄色资源在线观看| 操b视频在线免费观看| 91精品综合| 在线播放高清无码| 国产人妖视频| 人与禽一级A片一区二区三区| 操逼网站视频| 嫩小槡BBBB槡BBBB槡免费-百度 | 91人妻中文字幕在线精品| 欧美操逼电影| 亚洲欧美久久| 免费黄色视频网站大全| 亚洲中字幕新| 日本视频一区二区| 国产日本在线视频| 国产精品无码7777777| 国产特级婬片免费看| 欧美日韩日逼| 亚洲无码中文字幕视频| 99视频在线播放| 男人操女人免费网站| 日本不卡二区| 影音先锋在线成人| AAAA毛片视频| 国产免费高清视频| AV在线播放中文字幕| 亚洲黄片视频| 久久久极品| 激情五月天网站| 久久精品久久久久久久| 男人天堂手机视频| 91成人无码看片在线观看网址 | 欧美视频中文字幕| 日韩午夜在线观看| 鸡巴网站| 午夜福利播放| 国产无码在线影院| av一区二区三区四区| 麻酥酥在线视频| 天天看天天射| 国产熟女av| 日本一级做a爱片| 亚洲www在线观看| 国产一区亚洲| 97人人爽人人爽人人人| 另类TS人妖一区二区三区| 中文字幕无码AV| 喷水视频在线观看| 丁香四月婷婷| 午夜性爱剧场| 强伦人妻一区二区三区视频| 丁香婷婷激情五月| 成人H在线| 口爆在线| 日韩一级免费毛片| 午夜视频在线看| 久草a视频| 日韩精品三区| 成人A片在线观看| 北京熟妇槡BBBB槡BBBB| 五月丁香天堂| 伊人久久免费视频| 中文字幕在线播放AV| 久色悠悠| 水果派成人播放无码| 国产精品成人无码专区| 黄色国产视频| 国产亚洲三级| 久久久一区二区三区四区免费听 | 北条麻妃在线视频聊天| 丁香六月婷婷| 国产在线免费视频| 亚洲性爱视屏| 91无码人妻一区二区成人AⅤ | 日韩一页| 成人网站在线看。| 大奶一区二区| v在线| 国产香蕉视频在线播放| 91三级片| 丰满人妻精品一区二区在线| 东北奇淫老老妇| 国产欧美在线观看| 巨爆乳肉感一区二区三区| 婷婷伊人久操网| 国产黄色自拍视频| 日欧无码| 日韩中文字幕一区二区| 亚洲天堂在线免费观看| 国产女人18水真多18精品一级做| 尤物视频入口| 成人精品在线| 91人妻最真实刺激绿帽| 国产黄色片在线免费观看| 黄色无码视频| 国产精品欧美一区二区三区苍井空 | 北条麻妃一区二区三区| 亚洲日逼视频| 青娱乐成人电影| 国产精品剧情| 日本久久久| 黄色三级av| 91一区二区在线观看| 国产a√| 91精品久久久久久久久久| 国产无码久久久| 欧美三级片在线| 一道本视频| 污视频网站免费观看| 日韩无码中文字幕| 免费看的黄色视频| 亚洲精品伦理| 精品无码二区| 六月色| AAAAA毛片| 中文字幕无码播放| 日本人妻中出| 一区二区三区高清无码| 日木毛片| AV在线大香蕉| 无码精品一区| 男男做受A片AAAA| 99精品国自产在线| 日韩AV无码专区亚洲AV紧身裤| 亚洲综合色婷婷| 五月天成人网址| 国产免费AV在线观看| 成人AV在线看| 高清免费无码视频| 亚洲无码在线视频观看| 无码秘蜜桃一区二区三区| 亚洲一区二区三区在线++中国| 91做爱| 玖玖爱免费视频| 91丨PORN首页| 亚洲人内射片又| 日韩欧美在线免费观看| 国产黄色视频在线免费看| 操B图| 男人天堂中文字幕| 色99999| 黄色电影中文字幕| 亚洲精品二| 男女性爱视频免费| 国产精品视频久久| 成人在线h| h视频| 久久久精品淫秽色情| 日本50路熟女| 五月天性爱视频| 在线无码不卡| 大香蕉综合网站| 日本成人免费电影| 老骚老B老太太A片| 俺去啦在线| 国产69精品久久久久久| 99热精品免费| 这里视频很精彩免费观看电视剧最新 | 成人AA片| 91狠狠色丁香婷婷综合久久精品| 中文字幕第27页| 午夜成人福利视频| 91精品电影18| 欧美亚洲日本| 日韩久久人妻| av官网| 女生操网站| 久久久大香蕉| 尻屄视频在线观看| 美日韩免费视频| 亚洲日韩在线中文字幕| 国产日韩欧美久久| A一级黄色| 亚洲天堂成人| 人人澡人人添人人爽人人| 成人日皮视频| 久久福利视频导航| 日韩黄色电影在线| 偷窥美鲍| 青青草无码视频| 国产人妻精品| 熟妇女人妻丰满少妇中文字幕| 日韩在线成人中文字幕亚洲| 国产香蕉在线播放| 操逼逼一区二区三区| 国产一级二级三级| 91人妻在线视频| 777.av| 人人色在线观看| 国产成人黄色片| 人妻无码91| 97福利| 亚洲一级A片| 2019天天干| sm在线观看| 亚洲免费视频一区| 亚洲成人动漫免费| 肏逼视频免费看| 91熟女视频| 色婷婷丁香五月天| 在线免费观看一区| 黄片无码免费观看| 欧美性猛交XXXX乱大交HD| 亚洲精品黄色电影| 97色色婷婷五月天| 国产一级a毛一级a毛片视频黑人| 欧美福利导航| 日韩人妻无码一区| 青青草激情| 91免费成人电影| 国产午夜激情视频| 美日韩一区| 动漫操逼视频| 亚洲无码A片在线| 一区二区三区四区五区六区高清无吗视频| 无码在线免费观看视频| 免费一级黄| 亚洲AV无码一区东京热久久| 黄色片在线观看视频| 日本三级片网址| 91ncom| 狠狠肏视频| 九九九热精品| 无码三级在线免费观看| 中文字幕视频一区| 久久五月婷| 免费高清无码在线观看| 美女久久久| 欧美第五页| 黑人精品欧美一区二区蜜桃| 国产小电影在线观看| 日韩三级黄色| www.操B| 97精品人妻麻豆一区二区| 久久人妻无码| 大鸡巴午夜爽视频电影| 青娱乐精品视频| www在线| 2025国产精品| 无码免费视频在线观看| AV东方在线| 怡春院亚洲| 婷婷五月精品| 69av在线观看视频| 亚洲男人的天堂av| 99久久婷婷国产综合| 翔田千里无码一区| 免费在线无码视频| www.av在线播放| 国产毛片18水真多18精品| 青草成人在线视频| 高清无码色播| 俺去操| 黄色无码视频| AV资源在线| 波多野结衣成人视频| 日日操视频| 国产激情精品| 国产中文字幕在线视频| 亚洲国产成人综合| 五月伊人激情| 亚洲无码精品久久| 美女91视频| 天天色天天爱| 亚洲香蕉在线视频| 色婷婷六月天| 成人黄色AV| 香蕉国产2023| 翔田千里无码播放| 国产乱伦中文字幕| 成人免费视频国产在线观看| 日韩无码不卡视频| 69成人天堂无码免费| 免费性爱网站| 成人不卡视频| 在线观看视频你懂的| 影音先锋成人AV资源| 日韩欧美一区在线| 国产视频高清无码| 日韩欧美成人片| 亚洲精品秘一区二区三区影| 无码一区二区黑人猛烈视频网站| 久久另类TS人妖一区二区免费| 国产无码操逼视频| 一级a免费| 久久久久久少妇| 国产日韩欧美91| 动漫无码视频| 亚洲AV无码蜜桃| 超碰免费99| 免费无码婬片AAAA片在线蜜芽| 色情小电影免费网站观看网址在线播| 久久久黄色电影| 91久久久久久久18| A片啪啪| 激情久久AV一区AV二区AV三区| 国产成人无码Av片在线公司| 一级电影视频去去去| 翔田千里91| 人人操超碰在线| 日产精品久久久久| 天天肏天天肏| 亚洲成人第一页| 视色影院| 午夜福利资源| 亚洲中文字幕免费| 亚洲欧美另类在线| 国产精品你懂的| 欧美精品99久久久| 黄色片在线播放| 中文字幕无码不卡| 大香蕉av一区二区三区在线观看| 色就是色欧美成人网| 日本久久高清| 国产乱伦精品视频| 极品在线视频| 三级片网页| 日韩成人无码精品| 就爱搞搞| 怡春院院成人免费视频| 久久婷婷五月综合伊人| 综合大香蕉| 91足浴店按摩漂亮少妇| 超碰在线国产| 一本色道久久综合亚洲二区三区| 男女啪啪免费网站| 91香蕉在线| 欧美日韩在线免费观看| 国产色五月视频| 怡春院熟女精品AV| 美女网站色| 蜜桃人妻| 久久另类TS人妖一区二区免费| 亚洲欧洲无码视频| 国产精品福利导航| 国产日韩一区二区| 欧美三级毛片| 亚洲免费黄色| 97成人视频| 蜜桃视频在线观看18| 肏逼黄色一级| 在线亚洲日韩| 午夜精品久久久久久久99热精东| 精品三级网站| 亚洲成人不卡| 操逼网首页123| 中文字幕在线视频免费观看| 高清无码在线观看免费| 中文字幕亚洲日韩| 精品免费视频| 亚洲日韩欧美性爱| 国产精品国内自产| 欧美日韩肏屄视频| 国产精品天天狠天天看| 午夜AV电影| 18禁网站禁片免费观看| 婷婷伊人綜合中文字幕| 国产精品视频免费| 日日夜夜老司机| 日韩成人AV在线播放| 少妇高潮一区二区三区99| 免费在线观看一区| www.久久久| 色拍拍视频| 18一20女一片毛片| 国产久久久久| 国产狂喷水潮免费网站www| 成人国产精品秘欧美高清| 欧美一级特黄真人做受| 最新免费一区二区三区| 九七人妻| a视频免费在线观看| 欧美日本亚洲| 成人影视1-23| 黄色视频在线| 九九九网站| 久久久成人免费视频| 大肉大捧一出免费观看| 狼友视频在线播放| 国产精品久久777777是什么意思| 色婷婷视频一区二区| 欧美一级A片免费看视频小说| 91视频第一页| 天天干天天色| 国产精品一线| 人人精品| 操逼视频观看免费| 男人v天堂| 国产又爽又黄免费网站在| 牛牛免费视频| 黄色av免费| 一区无码| 国产伊人自拍| 北条麻妃久久久| 91在线一区二区三区| 亚洲无码专区在线观看| 国产精品久久久久永久免费看| 免费看欧美日黄片| 美女AV网站| 天天日天天色天天干| 日本毛片在线观看| 日韩AV高清| 亚洲综合伊人| 伊人久久大香线蕉| 欧美日韩字幕| 国产AV影片| 五月婷婷色色| 日韩不卡| 无码人妻免费视频| 久操网在线| 婷婷五月天网| 国产第一页在线| 懂色成人Av| 五月精品在线| 在线观看内射视频| 久久伊人大| 三级视频在线播放| 国产AV高潮| 国产精品美女在线观看| 成人黄色视频免费| 91丨九色丨熟女老版| 四川少妇BBB凸凸凸BBB安慰我| 日韩干网| 日韩一级片免费| 国产又色又爽又黄又免费| 青草福利视频| 大香蕉美女视频| 国产女人高潮毛片| 中文字幕日韩高清| 丰滿老婦BBwBBwBBw| 麻豆videos| 玖玖爱这里只有精品| 天天看天天摸| 五月综合激情| 亚洲国际中文字幕在线| 日韩AV自拍| 国产精品免费一区二区三区都可以| 中文字幕1区| 8050午夜一级免费| 黑人一区二区三区四区| 国产成人精品av| 你懂的视频在线| 操b视频免费看| 久久久久久久久久成人| 乖我硬了让老子cao你小视频| 婷婷五月天中文字幕| 亚洲成人免费在线视频| 在线观看免费黄网站| 黄色一及片| 高清无码毛片| 欧美成人午夜影院| 手机av在线观看| 色色无码| 天天天天毛片| 大地中文资源5页的更新内容| 日本综合视频| 大香蕉中文在线| 亚洲日韩中文字幕无码| 88在线无码精品秘入口九色| 免费乱伦视频| 蜜桃视频在线观看18| 免费的黄色视频网站| 久久黄色小视频| 97干干| 成人水蜜桃| 自拍亚洲欧美| 国产理论片| 夜夜骑射| 97成人在线视频| 国产高清无码一区二区三区| 日本三级网站| 99热精品2| 国产AV无码成人精品区| 日韩在线免费| 色婷婷俺来也| 黄片网址在线观看| 老太色HD色老太HD-百度| 婷婷免费视频| 精品欧美激情精品一区| 欧美性爱A| 337p大胆色噜噜噜噜噜| BBWBBw嫩| 美女网站视频黄| 亚洲性爱一级片| 欧美操屄视频| 久久av一区二区三区观看| 无码视频韩国| 中文字幕无码在线| 2017天天干天天射| 国产福利91| 成人视频网站在线观看| 中文字幕无码一区二区三区一本久 | 安徽少妇搡bbw搡bbbb| 99国产免费视频| 国产精品成人无码| 四虎国产精品成人久久| 天天日人人| 亚洲综合视频在线观看| 婷婷色色五月天图片| 337P粉嫩大胆噜噜噜55569| 亚洲成人视频免费观看| 99性视频| 亚洲无码婷婷| 亚洲无码在线免费观看视频| 成人久久AV| 亚洲色无码| 内射学生妹| 欧一美一婬一伦一区二区三区自慰国 | wwwxx在线观看| AV无码一区二区| 三级乱伦| 日韩精品免费一区二区在线观看 | 亚洲性爱综合| 欧美艹逼视频| 在线观看黄色小视频| 鲁鲁鲁鲁鲁鲁鲁777777| 自拍做爱视频| 丁香五月婷婷五月| 欧美亚洲在线观看| 久草资源网| 婷婷五月在线播放|