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

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

共 15138字,需瀏覽 31分鐘

 ·

2020-11-19 02:27

來源:yq.aliyun.com/articles/72501



1、LIMIT 語句

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

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

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

要知道數(shù)據(jù)庫也并不知道第1000000條記錄從什么地方開始,即使有索引也需要從頭計(jì)算一次。出現(xiàn)這種性能問題,多數(shù)情形下是程序員偷懶了。

在前端數(shù)據(jù)瀏覽翻頁,或者大數(shù)據(jù)分批導(dǎo)出等場景下,是可以將上一頁的最大值當(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í)間基本固定,不會隨著數(shù)據(jù)量的增長而發(fā)生變化。

2、隱式轉(zhuǎn)換

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

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

比如下面 UPDATE 語句,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ì)劃簡化為:

+----+-------------+-------+------+---------------+-------+---------+-------+------+-----------------------------------------------------+| 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)行混合排序。但在某些場景,還是有機(jī)會使用特殊方法提升性能的。

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語句

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

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 子查詢;

  • 輸出字段中的子查詢;

如下面的語句,從執(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   | 0>   |  | 514     | const |    2 | Using where ||  2 | DERIVED     | operation  | index | idx_4         | idx_4       | 519     | NULL  |   20 | Using index |+----+-------------+------------+-------+---------------+-------------+---------+-------+------+-------------+

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

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ì)解釋說明請參考文章:

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

7、提前縮小范圍

先上初始 SQL 語句:

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語句原意是:先做一系列的左連接,然后排序取前15條記錄。從執(zhí)行計(jì)劃也可以看出,最后一步估算排序記錄數(shù)為90萬,時(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 條件以及排序均針對最左主表,因此可以先對 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 DESClimit 0, 15

再檢查執(zhí)行計(jì)劃:子查詢物化后(select_type=DERIVED)參與 JOIN。雖然估算行掃描仍然為90萬,但是利用了索引以及 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é)果集下推

再來看下面這個(gè)已經(jīng)初步優(yōu)化過的例子(左連接中的主表優(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

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

其實(shí)對于子查詢 c,左連接最后結(jié)果集只關(guān)心能和主表 resourceid 能匹配的數(shù)據(jù)。因此我們可以重寫語句如下,執(zhí)行時(shí)間從原來的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語句中出現(xiàn)了多次。這種寫法不僅存在額外的開銷,還使得整個(gè)語句顯的繁雜。使用 WITH 語句再次重寫:

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ù)庫編譯器產(chǎn)生執(zhí)行計(jì)劃,決定著SQL的實(shí)際執(zhí)行方式。但是編譯器只是盡力服務(wù),所有數(shù)據(jù)庫的編譯器都不是盡善盡美的。

上述提到的多數(shù)場景,在其它數(shù)據(jù)庫中也存在性能問題。了解數(shù)據(jù)庫編譯器的特性,才能避規(guī)其短處,寫出高性能的SQL語句。

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

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

推薦閱讀

GitHub 熱榜:標(biāo)星 1.6w,黑客必看的黑魔法開發(fā)指南!

深入了解 Json Web Token 之概念篇

Spring 中的 bean 是線程安全的嗎?


最后,推薦給大家一個(gè)有趣有料的公眾號:寫代碼的渣渣鵬,7年老程序員教你寫bug,回復(fù) 面試或資源 送一你整套開發(fā)筆記 有驚喜哦

瀏覽 58
點(diǎn)贊
評論
收藏
分享

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 中文字幕在线观看不卡| 人人色人人| 男女www视频| 国产毛片毛片| 亚洲日韩精品成人无码专区AV | 色噜噜狠狠一区二区三区牛牛影视| 大地资源中文第二页导读内容| 亚洲无码中文人妻| 色婷婷久久综合久色| 91资源在线观看| 九草在线| 亚洲Av秘无码一区二区| 国产理论视频在线观看| 欧美午夜乱伦电影| 奇米狠狠干| 成人在线超碰| 国产一级片在线| 中文字幕中文| 在线观看黄色小电影| 久久嫩草精品久久久久精| 国产亚洲色婷婷| 国产天堂网| 国产精品揄拍100视频| 国产超碰青青草| 国产超碰免费| 韩国中文字幕HD久久| 爱爱视频日本| 俺去听听婷婷| 青青操在线| 九九韩剧网最新电视剧免费观看| 无码av高清| 伊人久久大香色综合久久| 国产骚逼| 亚洲黄色电影网站| AV在线精品| www.91在线看| 精品吃奶一区二区三区视频 | 久久肏| 亚洲黄片免费看| 国产精品93333333| 天天操电影| 欧美日韩色情| av一区二区在线观看| 人人澡人人爽欧一区| 欧美一二三区黄色免费视屏 | 免费十无码| h视频在线观看网站| 大香蕉久在线| 国产成人精品国内自产拍免费看 | 成人性爱在线| 久久久精品免费视频| 3D动漫精品一区二区在线播放免费| 91蝌蚪在线视频| 欧美激情xxx| 一本色道88久久加勒比精品| 日本天堂Tv视频在线观看 | 无码乱伦AV| 亚洲日本黄色网址| 中文字幕av在线播放| 特级西西WWW888| 香蕉视频在线看| 精品国产黄色| 中文字幕无码人妻在线视频| 久久婷婷六月| 91丨九色丨熟女泻火| 国产亚洲无码激情前后夹击| 久久99高清| 欧美一级成人片| 激情无码五月天| 91无码一区二区三区在线| 久色视频| 影音先锋成人AV| 欧美黄色免费看| 国产一级a毛一级a毛视频在线网站 | 黄总av| 国产精品久久久久久久免牛肉蒲 | 色人人| 国产有码视频| 91久久婷婷| 97国产免费| av资源网站| 狠狠狠狠狠狠狠| 欧美伦妇AAAAAA片| 欧美性爱怡红院| 日韩性爱小说| 精品一区二区三区四区五区六区 | 国产精品V日韩精品V在线观看| 亚洲欧美视频| 91av免费看| 91大熟女91大腚女人| 亚洲偷拍中文| 337P大胆粉嫩噜噜噜| 中文字幕网在线| 亚洲av不卡| 日韩人妻精品无码久久边| 在线免费观看黄片| 天天色天天日| 8050午夜| 人人操人人妻| 色婷婷网| A一级横色大片| 黄色A片约| 亚洲国产成人精品女人久久久| 在线观看高清无码| 成人高清无码| 巨乳无码噜噜噜久久久| 午夜精品久久久久久不卡8050| 无码欧美| 一级大毛片| 翔田千里与黑人50分钟| 欧美激情无码炮击| 蜜臀av一区二区三区| 国产免费一区二区三区四区| 就去色色五月天| 爱无码| 四色婷婷| 欧美老妇BBBBBBBBB| 精品人人人| 亚洲日韩在线a成| aaa国产精品| 中文字幕北条麻妃| 成人你懂的| 中文字幕人妻丝袜二区电影| 老司机精品| 网站啪啪| 91熟女乱伦| 欧美日韩高清一区二区三区| 做爰视频毛片下载蜜桃视频。| 国产三级片自拍| a4yy午夜福利| 国产福利视频导航| 国产人妖在线观看| 久久久国产精品视频| 少妇大战黑人46厘米| 久久一级片| 日韩精品高清中文| 久久久久久久毛片| 人人澡人人爽欧一区| 最新激情网站| 一区免费在线观看| 成人午夜啪免费视频在线观看软件| 豆花视频无码| 国产l精品久久久久久久久久 | 97久久精品| 无码精品人妻| 一本道视频在线| 日本在线精品视频| 久草热在线| 亚洲精品AⅤ一区二| 青娱乐国产在线| 中国熟妇| 卡一卡二卡三| 老熟女--91XX| 北条麻妃久久久| 加勒比人妻| 成人黄色小电影| 日本毛片在线观看| 99久在线精品99re8热| 青青操B| 99re视频在线| 欧美成人18| 婷婷国产成人精品| 91精品91久久久中77777| 国产乱子伦| 成人丁香五月| 东方AV在线免费观看| 91网站免费| 国产一区二区三区免费| 国产激情在线视频| 国产免费一区二区三区免费视频| 久操新在线| 亚洲午夜激情电影| 四虎日韩| 97人妻天天摸天天爽天天| 亚洲图片一区| 日韩无码一级| 91成人情欲影视网| 亚洲成人福利电影| 午夜精品久久久久久久91蜜桃| 黄色视频在线免费观看网站| 久久视频国产| 天天插夜夜操| 黃色一级一片免费播放| 操逼不卡视频| а√天堂中文官网8| 91九色蝌蚪91POR成人| 被黑人猛躁10次高潮视频| 欧美一区二区三曲的| 一区二区三区毛片| 亚洲AV在线人妻| 久射精品| 中文字幕免费无码| 蜜臀99久久精品久久久懂爱 | 影音先锋成人资源| av色在线| 蜜桃免费| 91精品成人| 亚洲av免费在线| 欧美A视频| 天干天干天夜夜操| 五月天黄色电影网站| 青青草成人AV| 亚洲区欧美区| 俺也去av| 免费看性蜜桃| 丁香五月伊人| 成人网大香蕉| 99热免费观看| 国产免费无码一区二区| 欧美熟女一区二区| 亚洲综合人妻| 2022黄片| 最新av在线| 亚洲精品天堂无码AV片| 人人操97| 国产内射精品| 国产精品黄色电影| 无码操逼| 四川BBB操BBB| 无码精品人妻| 免费无码成人片在线播放| 97人妻精品| 五月人妻| 91精品网| 日本成人一区| 伊人网在线播放| 国产免费av在线观看| 欧美A级成人婬片免费看| 中文字幕在线国产| 亚洲天堂网在线观看| 一级国产黄色视频| 亚洲国产精品VA在线看黑人 | 91中文字幕在线播放| 中文字幕第12页| 日韩一级黄色电影| 日韩美女在线视频| 天堂网久久| 黄色小视频免费观看| 日韩免费AV| 香蕉中文网| 男女操逼视频网站| 涩久久| 白浆四溢av| 一级一级a免一级a做免费线看内裤| 俺也日| 夜夜爽久久精品91| 欧美精品午夜福利无码| 欧美偷拍一区| 欧美性猛交XXXX乱大交| 日韩精品三区| 亚洲日韩精品欧美一区二区yw| 一级特黄妇女高潮AA片免费播放 | 黄色一级视频| 人人操人人爱人人妻| 日韩操逼电影| 男女草逼| 久射精品| 色噜噜人妻丝袜无码影院| 老司机免费福利视频| 狼友视频第二页| 视频一区二| 成人无码区免费A片久久| 国产免费无码一区二区| 国产日韩在线播放| 日本在线黄色视频| 国产精品一级片| 国产一级特黄| 国产精品视频99| 污视频免费在线观看| 欧美一区三区视频z| 2024AV在线| 黄色小视频免费观看| 色色色色色欧美| 欧美成人性爱在线| 人人澡人人添人人爽人人| 国产激情欧洲在线观看一区二区三区| 波多野结衣与黑人| 你懂的在线网站| 国产一区二区三区18| 动漫av网站| 黄色网页在线免费观看| 综合+++夜夜| 国产AV二区| 麻豆性爱视频| 操逼综合网| 伊人大香蕉网站| 91人人在线| 九九热毛片在线观看| 大香蕉草久| 97香蕉久久国产超碰青草专区| 中文字幕在线看成人电影| 无码视频中文字幕| 去干网欧美| 内射学生妹视频| 激情伊人五月天| 亚洲久久无码| 友田真希一级婬片A片| 日韩欧美V| 91水蜜桃| 日本在线网站| 亚洲欧洲中文字幕| 国产成人在线精品| 亚洲性片| 中文字字幕在线中文乱码更新时间 | 欧美日韩国产高清| 国产成人视频在线播放| 精品无码一区二区三区免费| 啪啪啪啪网站| 成人在线无码视频| 91女人18毛片水多的意思| 亚洲乱码一区| 欧美成人自拍视频| 黄色片在线播放| 国产69视频在线观看| 中文字幕在线观看网址最新地址| 色综合视频| 丁香天堂| 亚洲成人AV在线| 亚洲区在线播放| 日韩免费一级| 久久a久久| 色情一级AA片免费观看| 黄色无码视频| 黄色av免费在线| 久操视频网| 边摸边插| 日本无码免费视频| 少妇性视频| 狠狠欧美| 亚洲一级无码| 夜夜骚av.一区二区三区四区| 青青草无码成人天堂免费| 91AV免费| 五月伊人激情| 久久久精品久久| 中文字幕无码人妻在线视频| 99久久国内精品成人免费| 午夜黄色视频在线观看| 91久色| 国产精品囯产三级囯产AV野外| 在线免费A片| 大香蕉福利在线| 操屄视频在线| 国产变态另类| 九色PORN视频成人蝌蚪自拍| 老司机AV91| 一本色道久久综合无码| 免费AV网站| 影音先锋在线成人| 欧美在线视频99| xxxxxbbbbb| 成人午夜免费视频| 欧美精品黄| 色五月综合| 亚洲国产精品尤物yw在线观看| 性欧美| 伊人在线综合| 女人操逼| 成人黄色视频网| 色丁香五月婷婷| 一道本不卡视频| 麻豆AV在线观看| 国产AV网| 国产成人精品二三区麻豆| 久久久中文| 亚洲色综合久久五月| 一级片黄色电影| 亚洲激情片| 一本色道88久久加勒比精品| 久久亚洲综合| 久久久亚洲AV无码精品色午夜| 国产经典午夜福利视频合集| 日本三级片免费观看| 狠狠躁日日躁夜夜躁2022麻豆 | 国产精品一区二区三区四区| 91超碰人人| 亚洲精品无码在线观看| 国产高清无码在线观看视频| 男女嫩草视频| 成人欧美在线观看| 成人av网站在线播放| 国产精品一级a毛一级a| 久久久亚洲AV| 精品国产污污免费网站入口| 在线观看一区二区视频| JiZZjiZZ亚洲成熟熟妇| 天天操视频网站| 国产一级a毛一级a毛视频在线网站 | 日本三级网| 国产av天天| 爱搞搞就要搞| 亚洲中文无码电影| 欧美日韩免费在线播放电影在线播放电影在线播放电影免费 | 人妻天天爽| 无码毛片在线观看| 操一操影院| 婷婷综合欧美| 无码国产精品一区二区免费式直播| 美国黄色A片| 91成人免费视频| 俺来俺也去www色在线观看| gogogo高清在线观看免费直播中国| 东京热黄色| 婷婷天天干| 亚洲人妻在线观看| 91大屁股| 久久久9999| 久久久久久久网| 国产av一区二区三区| 欧美激情视频一区二区| 蜜臀av一区二区三区| 午夜成人AV| AV777777| 成人在线免费视频观看| 欧洲AV在线| gogogo高清在线观看免费直播中国| 国产不卡视频| 中文字幕精品久久久久人妻红杏Ⅰ | 99视频在线看| 久久久久久亚洲AV黄床| 国产在线秘麻豆精品观看| 国产女人高潮毛片| 国产美女精品久久AV爽| 黑巨茎大战欧美白妞小说| 老鸭窝久久久| 久久精品视频18| 免费黄色视频网站在线观看| 亚洲一本在线电影av| 狠狠干五月天| 688AV秘无码一区二区| 99自拍视频| 不卡视频一区| 成人免费区一区二区三区| 91丨国产丨熟女熟女| 亚洲无码AV免费观看| 欧美日韩成人电影| 少妇人妻精品| 久久人妻视频| 欧美成人性爱视频| 人人干人人妻| 热久久亚洲中文字幕| 99热这里有精品| 内射一区二区三区| 日本Sm/调教/捆绑/紧缚| 成人欧美在线观看| 欧美A片在线免费观看| 免费日逼| 中文字幕无码成人| 亚洲wwwwww| 操屄影院| 囯产一级a一级a免费视频| 嫩草视频在线观看免费网站| 色欲av伊人久久大香线蕉影院| 国产精品一区av| 久久AV电影| 十八禁无码网站在线观看| 99精品9| 中文字幕第4页| 日韩大片在线观看| h在线网站| 国产成人精品在线观看| 久操网址| 亚洲精品色婷婷| 99激情| 久久视频国产| 久久99视频免费观看| a在线| 久久精品夜色噜噜亚洲A∨| 色色色五月婷婷| 午夜福利成人| 另类老太婆性BBWBBw| 成人A片免费在线观看| 国产精品999| 久久99久久99精品免视看婷婷| 欧美一级黃色A片免费看蜜桃熟了 一级a一级a免费观看免免黄‘/ | 麻豆mdapp03.tⅴ| 大香蕉五月丁香| 999久久久久| 人人干人人摸人人操| 欧美日韩中文字幕在线视频| 中文A片| 亚洲AV成人无码| 激情五月婷婷丁香| 亚洲Av无码午夜国产精品色软件 | 欧美日韩激情| 看一级黄色片| 182AV| 亚洲色色频| www.17c嫩嫩草色蜜桃网站| 夜夜爱视频| 人成免费网站| caobi视频| 国产Av高清| 97久久综合| 99成人乱码一区二区三区在线 | 人人操在线公开| 亚洲成人无码AV| 3d动漫精品一区二区三区在线观看| 国产精品无码一区二区三| 欧美成人小视频| 婷婷性爱五月天| 真人一级片| 一级黄色AV片| 黄片aaa| 亚洲精品中文字幕乱码三区91| 免费人成视频观看| 奇米影视色偷偷| 精品人妻一区二区免费蜜桃视频 | www.日逼| 亚洲精品国产成人| 一级片免费观看| 丰满老妇高潮一级A片| 久久中文字幕人妻| 成人福利免费视频| 欧美精品一区二区三区成人片在线| 国产黄A| 亚洲无码视频在线免费观看| 日韩中文字幕永久| 亚洲av电影在线观看| 亚洲AV无码乱码精| 无码不卡av| 国产性受XXXXXYX性爽| 黄色激情网站| 亚洲操逼片| 人人爽久久涩噜噜噜网站| 在线观看免费视频a| 一本色道88久久加勒比精品| 國產精品77777777777| 国产免费a片| 2024AV在线| 久久香视频| 亚洲天堂无码| 亚洲欧美另类在线| 成人黄色AV| 天天日天天干天天草| 欧洲成人无码| 国产一级一片免费播放放a| 国产区精品| 亚洲中文字幕在线视频观看| 亚洲真人无码| 久久综合站| 最近日韩中文字幕中文翻译歌词| 国产一区二区三区免费播放| 亚洲激情一区| 91精品久久久久久久久久久久 | 天天色天| 中文字幕无码综合| 女人的天堂AAA| 亚洲精品一区二区三区| 成人免费看片| 欧美亚洲图区| 日韩欧美三级在线| 五月天AV网站| 午夜福利干B在线免费小视频| 都市激情亚洲| 久久黄视频| AV色图| 爱爱爱爱网| 在线成人小视频| 波多野结衣高清无码| 高清无码电影| 亚洲激情视频在线观看| 亚洲成人777| 中文字幕婷婷五月天| 日韩一级电影在线| 少妇在线观看| 色婷婷18| 国产精彩视频| 国产精品乱子伦一区二区三区视频| 亚洲中文第一页| 国产欧美精品一区二区三区| 中文字幕高清无码免费视频| 99视频免费看| 人人操天天操| 中文字幕无码亚| 日本中文字幕网站| 亚洲AV图片| 国产精品一区一区三区| www.色欲av| 亚洲色婷婷| 天天色天天干天天日| 国产精品夜夜爽7777777| 国产精品污www在线观看| 亚洲AV无码成人精品区久| 三级成人av| 日韩视频免费看| 亚洲AV在线人妻| 殴美老妇BBBBBBBBB| 乱子伦】国产精品| 久久婷婷亚洲| 69国产在线| 蜜桃系列一区二区精品| 国产精品一区二区免费| 香蕉成人网站在线观看| 一级片黄色电影| 亚洲性爱网站| 日韩精品第一页| 午夜无码熟妇丰满人妻| 91露脸熟女四川熟女在线观看| 天天免费视频| 亚洲高清无码网站| 日日舔| A级片免费看| 亚洲三级无码视频| 日本少妇高清视频| 操久久| 99热综合| 999无码| 成人福利网站| 国产内射无码| 欧美人妻精品| 久久久久久久久久国产| 大香蕉免费在线| 九九热视频在线| 国产精品一区av| 99精品国产一区二区| 国产一级a毛一级a做免费的视频| 91操美女视频| 东京热久久综合色五月老师| 被黑人猛躁4O次高潮| 免费一级电影| 午夜在线视频| eeuss一区| 无码在线免费视频| 无码偷拍| 亚洲av动漫| 欧美日日干| AV福利在线观看| 亚洲男女免费视频| 首屈一指视频在线观看| 人人妻人人操人人干| 午夜精品久久久久久久99热精东 | 色黄网站在线观看| 国产精品久久久久久99| 国产操逼无码| 躁BBB躁BBB躁BBBBBB日视频| 97精品无码| 久久国产一级片| 开心色播五月天| 可以免费观看的AV| 午夜午夜福利理论片在线播放 | 精品无码9| 国精品无码一区二区三区在线秋菊 | 亚洲小说区图片区| 成人做爰100部免费网站| 免费成人大片| 亚洲中文字幕网站| 色色色热热热| 日本特黄AA片免费视频| 久青草资源福利视频| 日韩免费中文字幕| 免费视频久久| 中文资源在线a中文| 波多在线视频| 无码人妻丰满熟妇区蜜桃| 东方av在线免费观看| 国产又爽又黄免费| 人人超碰人人| 日韩大鸡巴| 亚洲精品免费在线观看| 天天射天天操天天干| 老女人网站| 久久大奶| 中文字幕手机在线视频| 日韩乱伦中文字幕| 欧美日韩成人在线观看| 欧美A片在线播放| 国产成人无码AⅤ片免费播放| 国产丝袜在线视频| 蜜臀99久久精品久久久懂爱 | 无码精品一区二区三区同学聚会| 国产在线观看国产精品产拍| 一本道高清无码视频| 欧美三级在线视频| 中文一级片| 123操逼| 91视频亚洲| 国产高清无码在线观看| 最近日韩中文字幕中文翻译歌词| 亚洲国产成人精品女人久久久| 日韩23岁观看| 深爱婷婷网| 91国产精品视频在线| 黄色成人毛片| 天天干天天色天天射| 国产免费性爱视频| 色九九视频| 日日夜夜综合| 日本黄A三级三级三级| 理论在线视频| 91人妻日韩人妻无码| 青青操成人在线视频| 久久久青草| 欧美a片在线观看| 久久毛片视频| 北条麻妃99| 亚洲精品一区二区三区在线观看| 久久久亚洲| 一区色| 波多野结衣无码高清| 亚洲成人精品| 不卡无码免费| 天堂无码视频在线播放| 青娱乐国产精品一区二区| 亚洲香蕉视频网站| 大肉大捧视频免费观看| 91麻豆视频在线观看| 国产成人AV免费无码| 9999国产精品| 97人妻精品一区二区三区视频 | 国产毛片网| 亚洲免费观看高清完整版在va线观 | 91香蕉视频免费| 欧洲AV在线| 在线观看中文字幕AV| 麻豆国产91在线播放| 一曲二曲三曲在线观看中文字| 伊人久久大香线蕉av一区| 中文字幕一区二区三区的重点问题 | 九色PORNY国产成人| 三级片亚洲| 爱爱视频h| AV免费播放| 日韩动态图| 97一区二区| 性A免费在线播放| 国产欧美日韩三级| 免费无码国产在线怀| 国产污视频在线观看| 国产九九热视频| 先锋影音一区二区| 亚洲无码精品久久| 第一福利视频导航| 91精品一区| 国产欧美精品成人在线观看| 久久99久久视频| 国产—级a毛—a毛免费视频| 美女扣逼网站| 精品视频在线观看免费| 欧美日韩国内| 日韩免费视频一区二区| 人人舔| 成人精东影业JDAV3密友| 久久久久久久久久久久久久久久久久免费精品分类视频 | 91无码一区二区三区在线| 94精品人人人| 可以看的黄色视频| 天天躁天干天干| av在线免费观看网站| 91人妻在线视频| 激情在线视频| 亚色网址| 级婬片AAAAAAA免费| 丁香婷婷五月基地| 国产精品秘久久久久久| 五月涩| 日韩无码小电影| 日韩中文字幕在线| 午夜AV免费| 翔田千里无码一区| 日韩性爱小说| 粉嫩av懂色av蜜臀av分享| 91精品久久香蕉国产线看观看| 国产精品黄片| 日韩无码二级| 青青操日日干| 久草资源在线观看| 性爱无码网站| 国产又粗又大| 永久免费看片视频5355| 久久久久久免费一级A片| 99免费热视频在线| 亚洲www在线观看| 青春草在线观看视频| 亚洲无码视频免费观看| 亚洲黄色无码视频| 影音先锋黄色资源| 亚洲精品免费在线观看| 亚洲成人精品在线| 综合网久久| 国产成人无码区免费视频| 亚洲福利网| 亚洲色婷婷五月天| 蜜芽成人在线| 青青草手机在线视频| 国产久久免费视频| 午夜操逼逼| 天堂va欧美va亚洲va在线| 人人妻人人爱人人操| 日韩少妇| 婷婷六区| 亚洲五月丁香婷婷| 亚洲香蕉在线视频| 河南少妇搡BBBB搡BBBB| 日韩A人人| 中文字幕五月天| 天堂网久久| 草莓视频在线播放| 亚洲AV网站| 五月亭亭在线视频| 51妺嘿嘿在线电影免费观看| 91国产视频在线观看| 蜜臀久久99精品久久久老牛影视| 国产三级日本三级国产三级| 第一色网站| 狠狠插视频| 亚洲日本欧美| 北条麻妃久久网站| 中文字幕在线无码视频| 国产精品婷婷久久久| 青草国产| 国产黄色在线观看| 91在线无码精品入口电车| 岛国AV片| 国产三级电影在线观看| 迷奸91| 欧美男女操逼视频| 午夜69成人做爱视频网站| 国产黄页| 免费无码视频一区二区| 免费在线观看黄色网址| 欧美一级婬片AAAAAA片| 豆花视频成人| 少妇激情网站| 欧美一级a视频免费放| 国产v在线| 亚洲偷| 精品视频久久久久久| 日本色网址| 成人毛片在线| 超级碰碰碰碰碰碰碰碰碰| 精品久久久久久亚洲| 四虎成人精品在永久免费| www.黄色在线观看| 超碰激情| 日本无码精品| 黄色一级在线观看| 欧美不卡视频| 国产噜噜噜噜噜久久久久久久久| 欧洲美一区二区三区亚洲| 久久午夜福利| 免费精品黄色网页| 久久精彩免费视频| 大肉大捧一出免费观看| 日本Sm/调教/捆绑/紧缚| 亚洲网站免费在线观看| 日本欧美在线视频| 成人在线一区二区| 成人资源站| 在线观看的AV| 在线免费观看黄色电影| 国产操穴视频| www黄色在线观看| 国产黄色视频免费| 浪潮在线观看完整版| 人人操人人人| 精品视频免费观看| 国产av高清| 亚洲一区亚洲二区| 爱逼av| 黄色大片网站| 亚洲Aⅴ| 成人做爰A片免费看网站| 天堂一区| 中文字幕乱码视频| WWWA片| 91外围女视频| 日批网站在线| 中文字幕日韩视频| 精品人妻一区二区三区四区不卡在| 精品一区二区三区四区五区| 99视频在线看| 一线天嫩穴少妇| 伊人大香在线| 夜夜高潮夜夜爽| 免费人成年激情视频在线观看| 丁香六月婷婷综合激情欧美| 中文字幕乱码中文字乱码影响大吗 | 亚韩AV| 爱爱打炮影院| 亚洲区在线播放| 躁BBB躁BBB躁BBBBB乃 | 日本三级片无码| 亚洲精品秘一区二区三小| 免费看操逼| 久草视频在线免费播放| 欧美黄色毛片| 懂色av粉嫩AV蜜臀AV| 天天综合天天| 韩国一级av| 久久精品v| 高潮免费视频| 亚洲国产精品视频| 唐嫣一级婬片A片AAA| 四季AV一区二区夜夜嗨| 亚洲AV无码成人精品区天堂小说 | 亚洲国产精品VA在线看黑人| 免费黄片网站在线观看| 欧美性极品少妇精品网站| 亚洲在线成人视频|