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

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

共 15053字,需瀏覽 31分鐘

 ·

2020-10-14 11:10

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


程序員內(nèi)推群!北京!上海!廣州!深圳!杭州!鄭州!武漢!南京!西安


1、LIMIT 語句

分頁查詢是最常用的場景之一,但也通常也是最容易出問題的地方。比如對(duì)于下面簡單的語句,一般 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í),程序員仍然會(huì)抱怨:我只取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í)間基本固定,不會(huì)隨著數(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ù),而不是程序員的原意?,F(xiàn)在應(yīng)用框架很多很繁雜,使用方便的同時(shí)也小心它可能給自己挖坑。

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

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

MySQL 對(duì)待 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ì)解釋說明請(qǐng)參考文章:

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 條件以及排序均針對(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 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ù)量特別大的情況下會(huì)導(dǎo)致整個(gè)語句的性能下降。

其實(shí)對(duì)于子查詢 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í),要把算法的思想或意識(shí)帶進(jìn)來。

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


點(diǎn)擊原文閱讀獲得原創(chuàng)整理:《第2版:互聯(lián)網(wǎng)大廠面試題》


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

手機(jī)掃一掃分享

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

手機(jī)掃一掃分享

分享
舉報(bào)

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 丁香五月亚洲| 国产AV日韩AV| 亚洲免费成人| 污视频在线| 日屄在线观看| 俺来俺去www色官网| 日韩福利在线| 欧洲三级片网站| 操逼免费视频网站| 成人久久综合| 欧美一级操逼| 日韩不卡高清在线观看视频| 特黄AAAAAAAAA真人毛片| 强辱丰满人妻HD中文字幕| 无码人妻日本| 人人干人人操人人| 欧美一区二区三曲的| 内射午夜福利在线免费观看视频 | 汇聚全球淫荡熟女| 91人妻人人爽人人澡| 久久综合热| 成人性生活A级毛片网站| 91精品人妻一区二区三区四区 | 欧美日韩中文在线| 99啪啪| 中日韩中文字幕一区二区区别| 大香蕉性爱网| 国产大鸡巴| 996热re视频精品视频这里| 日韩电影| 成年人视频网站| 国产免费观看AV| 国产激情啪啪| 成人电影亚洲天堂| 北条麻妃AV在线播放| 色欲av在线| 天天干夜夜操| 怡红院成人av| 亚洲黄色无码| 九九re精品视频在线观看| 操逼网国产| 国产做爱导航| 欧美熟妇搡BBBB搡BBBBB| 51成人网| 欧美男女交配视频| 奇米色五月| 色婷婷激情五月天| 亚洲网站在线播放| 国产激情视频在线| 波多野结衣大战黑人| 中文字幕在线免费视频| 成年人免费公开视频| 人人操久久| 逼特逼视频网站| 小h片| 欧美一级黄色片| 男女av免费观看| 日韩成人无码一区二区| 欧美三级欧美三级三级| 亚洲色欧美| 国产人妻中文字幕| 国产在线无码视频| 精品无码一区二区三区四区五区| 在线视频免费观看| 鲁鲁鲁鲁鲁鲁鲁777777| 伊人久久免费| 伊人av网| 色资源在线| 亚洲区一区二| 亚洲一级A片| 美女A级毛片| 亚洲成人三级片| 在线播放亚洲无码| 人妻人人操| 51AV在线| 999日本不卡影院| 玖玖资源站中文字幕| 欧美成人视频。| 艹逼国产| 在线免费观看国产视频| 欧美日韩一级电影| JIZZJIZZ国产精品喷水| 欧美成人h| 在线国产激情| 无码a区天堂| 天天撸一撸视频| 亚洲成人免费在线视频| 91成人导航| 思思热免费视频| 91人妻人人澡| 玖玖综合网| 另类天堂| 狠狠色婷婷777| 婷婷色情网| 国产精品va| 四虎亚洲| 色男人的天堂| 一级特黄录像免费播放下载软件| 蜜桃成人AV| 色婷婷在线无码精品秘人口传媒| 天天日综合网| 丁香激情网| 97亚洲综合| 老司机在线免费视频| 靠逼免费视频| 免费黄网站在线观看| 高清无码毛片| 无码在线网站| jizz18日本| 精品视频久久| 国产精品揄拍500视频| 亚洲无码你懂的| 日韩无码网址| 操逼逼综合网| 尤物视频入口| 伊人大香蕉在线| 欧美日韩激情视频| 96精品| 97人妻| 亚洲成人精品在线| 一边做一边说国语对白| 最新精品视频| 久久99综合| 在线观看www视频| 丰满人妻一区二区三区Av猛交| 91在线无码精品秘入口| 在线久草| 午夜福利av电影| 麻豆久久| 四川BBB搡BBB搡多人乱| 亚洲AV无码久久寂寞少妇多毛 | 成人A∨| 激情内射| 黄色免费片| 三级国产AV| 国产精品自拍在线观看| 欧美日韩A片欧美日| 欧美日本黄色| 毛片h| 亚洲污污| 91爱看| 亚洲热热| 中文无码一区二区三区| 国产一区二区三区四区在线观看| 三级片在线观看网站| 九九九精彩视频| 无码影音| 国产手机拍视频推荐2023| 日韩无码一区二区三| 狠狠干| 免费黄色视频观看| 91黄色视频网站| 性爱A级视频| 亚洲视频免费在线观看| 内射国产| 日韩一级片免费看| 国精产品一二三区| 久久久久久无码视频| 91精品久久久久久久| av青青草| 在线观看老湿视频福利| 国产日韩欧美久久| 丁香六月操| 日本不卡在线| 午夜精品久久久久久久| 日韩三级成人| 欧美亚洲图区| 免费三级片网址| 亚洲一级一级黄色| 国产乱码| 五夜福利成人视频| 日本不卡二区| 污污污www精品国产网站| 婷婷夜色福利网| 操操操综合网| 亚洲欧洲无码视频| 免费看国产黄色| 91九色麻豆| 天美果冻麻豆国产一区| 国产免费一区二区在线A片视频| 激情五月丁香五月| 91人人爱| 亚洲AV网址| 激情无码精品| 激情日韩| 亚洲AV中文在线| 久久久999精品视频| 在线免费观看黄片| 人妻在线观看| 自拍偷拍综合| av大全在线观看| 老妇槡BBBB槡BBBB槡| AV四虎| 激情白浆| 日本A一级片| 国产99久久久精品| 黄频在线免费观看| 日本一级片在线播放| 亚洲欧美日韩国产| 东京热一区二区三区| 操逼com| 成人无码久久| 五月丁香激情婷婷| 大伊香蕉在线| 国产三级黄| 永久AV免费网站| 亚洲娱乐在线| 久久一二三| 国产精品乱伦片| 成年人免费毛片| 婷婷丁香五月在线| 大香蕉伊人导航| 一本色道久久综合狠狠躁| 德国肥妇熟妇BBwBBw| 国产精品揄拍一区二区| 水蜜桃一区二区| 精品国产乱子伦一区二区三区最新章 | 手机看片久草| 欧美日韩A片欧美日| 国产91探花系列在线观看| 亚洲品久久久蜜| 91欧美| 五夜福利成人视频| 超碰天天干天天摸| 驲韩在线视频免费观看| 一级黄色蜜芽视频| 黄色成人网站在线观看| i美女福利视频| 国产清纯可爱美女自卫裸贷偷情| 中文字幕乱码免费综合久久| 丁香五月激情中文字幕| 亚洲天堂2014| 久久综合久久鬼色| 国产毛片基地| 成人H动漫精品一区二区三区蘑菇 高清无码视频在线免费观看 | 在线观看黄| 免费操逼网站| 欧美城综合在线观看网| 中文字幕播放| 九九伊人大香蕉| 中文字幕乱在线| 全国男人的天堂网站| 久久久黄色电影| 精品国产va久久久久久久| 天天日天天色天天干| 国产成人无码Av片在线公司| 午夜福利国产| 成人做爰100片免费观看视频| 亚洲免费三级| 网站你懂得| 欧美色图88| 蜜臀伊人| 亚洲日韩一区二区三区四区 | 婷婷深爱五月丁香网| 伊人久久大综合中文无码| 俺去啦俺也去| 亚洲福利在线免费观看| 在线观看日韩视频| 成人电影久久久| 亚洲精品熟女| 日韩欧美成人在线| 五月婷婷丁香五月| 免费成人毛片| 91成人精品一区在线播放| 国产三级毛片| 日韩成人在线免费观看| 大香蕉操逼| 日本三级片在线动| 国产搡BBB爽爽爽视频| 国精品无码人妻一区二区三区| 国产精品永久久久久久久久久| 六月丁香婷| 97视频在线观看免费| 久久草在线观看| 毛片A级成人片| 亚洲自拍天堂| 色婷婷色婷婷| 精品国产天线2024| 亚洲午夜久久久久久久久红桃| 东京热视频网| 成人精品| 欧美一级操逼视频| 亚洲欧美日韩另类| 婷婷色在线播放| 无码人妻丰满熟妇区毛片视频| 亚洲人妻视频| 欧美黄色操逼| 91丝袜在线| 天天做天天爽| 日本女人操逼视频| 亚洲av性爱| 99久久大香蕉| 狠狠色婷婷777| 国产爱搞| 国外亚洲成AV人片在线观看| 俺去也俺去啦| 亚洲AV无码国产综合专区| 中文av在线播放| 亚洲性爱视屏| 中文字幕无码Av在线| 69福利网| 国产A片视频| 免费观看色情视频| 欧美一区在线视频| 黄网免费| 亚洲黄色影院| 欧美三级免费| 国产最新av| 黄片一区二区三区| 一区二区三区欧美| 免费视频久久久| 性无码一区二区三区在线观看| 亚洲区视频| 精品无码久久久久久久久app| 少妇久久久久久久久久| 欧美三级片在线视频| 亚洲一区二区无码| 精品一本道| 丁香婷婷激情五月| 成人网站视频在线观看| 91久久久久久久91| 91AV电影网| 亚洲A片在线观看| 国产精品无码永久免费A片| 亚洲精品国产精品国自产| 九九精品久久| 影音先锋中文字幕资源| 天堂在线网| 无码人妻一区二区三区免费n鬼沢| 特黄视频| 91免费福利视频| 中国老熟女重囗味HDXX| 日韩一级在线| 人妻丰满精品一区二区| 中文在线高清字幕| 大香蕉福利视频导航| 国产21区| 日逼大片| 久久综合加勒比| 国产在线毛片| 俺也来俺也去| 风间由美大荫蒂无码AV| 国产精品一线| 日本亚洲欧洲免费| 亚洲网站免费观看| 久热福利视频| 国产无码AV大片| 超碰在线天天| 亚洲综合免费观看| 国产波霸爆乳一区二区| 色综合天天综合网国产成人网| 色我影院| 亚洲自拍中文字幕| 日韩欧美中文字幕在线观看| 亚洲国产精品成人综合色在线婷婷 | 欧洲精品在线免费观看| 91丨九色丨老农村| 德美日三级片在线观看| 成人伊人电影| 狠狠网| 欧美三区四区| 91麻豆精品国产91久久久吃药| 无码中文暮| 人人看AV| 五月丁香在线视频| 大香蕉伊人综合在线| 国产伊人大香蕉| 丁香花免费高清视频小说完整 | 91视频在线网站| 精品内射| 亚韩av| 日韩三级片网站| 91无码一区二区三区| 日韩欧美色图| 人妻HDHDHD96XXXX| 囯产精品宾馆在线精品酒店 | 女人一区二区| 国产三级黄| 91国产精品| 四川BBB嫩BBBB爽BBBB| 亚洲中文在线视频| 亚洲人成电影网| 人人妻人人摸| 99re66| 足浴店少妇69XXX| 久久久久久久久久久国产精品| 亚洲成人视频免费观看| 探花在线播放| 女人一级A片色黄情免费| jzzijzzij亚洲成熟少妇在线观看| 日韩一级免费毛片| 黑种人配中国少妇HD| 日韩中文字幕有码| 日韩黄色电影在线观看| 国产xxxx视频| 日韩乱伦视频| 伊人成人免费视频| 99免费在线观看视频| 日韩免费在线观看| 日本乱伦中文字幕| 久久免费看| 一本色道久久加勒比精品| 大香蕉免费网| 免费一级黄| 欧美亚洲日韩一区| AV在线影院| 三级无码AV| 天天想夜夜操| 人人澡人人妻人人爽| 亚洲av播放| 中日韩中文字幕一区二区区别| 欧美三级电影在线观看| 人人草人人看人人摸| 性爱视频无码| 麻豆911精一区二区| www.17c嫩嫩草色蜜桃网站 | 国产精品第一| 色色欧美视频| 翔田千里無碼破解| 91久久久久久久91| 操逼在线免费观看| 囯产精品久久| 九九热精品在线视频| 天天干,夜夜爽| 毛片网站在线观看| 欧美人操逼视频| 日鸡吧链接| 囯产精品一区二区三区线一牛影视1 | 人人爽爽人人| 人妻少妇无码视频| 亚洲中文中出| 中文不卡视频| 国产高清小视频| 日韩视频一二三| 天天色情| 久久99精品国产.久久久久久| 国产成人AV免费观看| 91女人18片女毛片60分钟| 国产一级片免费视频| 天天做天天干| 国产精品色视频| 国产91无码精品秘入口| 天天干夜夜操| 无码狠狠躁久久久久久久91 | 大香蕉综合闲人| 安徽妇搡BBBB搡BBBB按摩小说| 江苏妇搡BBB搡BBBB| 安微妇搡BBBB搡BBBB日| 日韩超碰| 蜜桃视频一区二区三区四区使用方法| 欧美精品久久久久久久久| 欧美成人伦理片网| 中文字幕一区二区三区四区在线视频| 久久久久久久伊人| 色婷婷官网| 特级西西444WWW大精品视频 | 综合激情网| 高清无码在线不卡| 亚洲欧洲精品视频| 日韩操逼图| 亚洲黄色电影网站| 日韩AV一级片| 骚逼久久| 人妻无码精品久久人妻成人| 亚洲少妇视频| ppypp电影频道| 俺来也听听婷婷| 91麻豆精品在线| 毛片网站在线观看| 亚洲A级片| 夫妻-ThePorn| 婷婷V亚洲V丁香月天V日韩V | 97超碰碰碰| 青青精品视频| 黄色成人在线观看| 三级网站大全| 国产丝袜人妖TS系列| 欧美色图在线观看视频| 91大神在线资源观看无广告| www.天天日| 操东北女人逼| 国产精品无码中文在线| 色男人的天堂网| 人妻少妇一区二区| 99操| 国产jk在线观看| 一级免费A片| 成人A∨| 亚洲国产精品成人综合色在线婷婷| 久操综合视频在线| 久久久1| 精品一区二区三区免费毛片| 日韩一级黄色毛片| 天天爽夜夜爽夜夜爽精品| 日本天堂网站| 夜夜爽日日爽| 日韩欧美国产| 双飞人妻13p| 亚洲69p| www.日韩一区| 国产18水真多18精品| 国产午夜福利免费视频在线观看| 国产欧美一区二区人妻喷水| 亚洲第一视频| 久久久久无码精品亚洲日韩| 三级片网站视频| 欧美AⅤ在线| 91蜜桃视频在线观看| 大地资源中文第二页导读内容| 最新中文字幕在线播放| 五月天青青草超碰免费公开在线观看 | 波多野无码| 国产AV自拍-久| 精品无码视频| 国产日韩欧美一区二区| 在线观看操逼视频| 韩国三级片在线| 青青草网站在线观看| 午夜成人免费福利| 婷婷五月激情中文字幕| 狼人伊人综合| 日韩欧美午夜成人无码| 久久99久久99久久99| 成人网站三级片| 欧美精品一卡二卡| 超碰97老师| 国产网站精品| 逼逼视频| 亚洲男同tv| 久久无码人妻精品一区二区三区| 婷婷爱五月天| 91视频福利网| 爱爱视频无码| 国产亚洲无码| 欧美精产国品一| 天天亚洲| 欧美日韩国产a| 欧美性BBwBBwBBwHD| 屁屁影院国产第一页| 成人在线观看AV| 精品视频在线观看| 亚洲无码在线播放| 日韩三区| 无码一区二区三区四区| 欧美成人毛片AAAAAA| 日韩A片一级无码免费蜜桃| 一区精品| 91成人做爰A片| 日韩无码成人电影| 青青操逼| 韩国GOGOGO高清| 驲韩在线视频免费观看| 无码中文字幕高清| 中文字字幕中文字幕乱码| 毛片在线看片| 插菊花综合网亚洲| 国产成人精品毛片| 成人性生交片无码免费看人| 婷婷国产| 国产成人精品a视频一区| 手机看片欧美+日韩+国产| 特级西西人体www高清大胆| 99热这里是精品| 成人性爱视频网| 欧美婬乱片A片AAA毛片地址| 国产亚洲欧洲| 免费播放婬乱男女婬视频国产| 亚洲无码高清视频在线| 亚洲成人网在线观看| 国产综合AV| 老熟女痒到不行-ThePorn| 国产A区| 日韩无码成人| 国产色婷婷一区二区| 久99在线视频| 午夜无码精品| 可以看的毛片| 要操逼网| A片免费在线播放| 成人午夜无码视频| 成人午夜免费视频| 无码免费视频| 就去色色五月天| 午夜一本道| 黄色免费视频| 欧美AAA在线观看| 日本成人无码| 91女人18毛片水多的意思| 免费看欧美成人A片无码| 国产主播在线观看| 日日干天天日| 大香蕉中文视频| 日本A片在线免费观看| 亚洲熟女av中文字幕| 成人在线免费网站| 俺来也俺也啪www色| 91精品人妻一区二区| 欧美婷婷五月| 成人黄色AV网站| 成人无码国产| x88AV吊钟奶熟女| 白浆在线| 亚洲性爱视屏| 日欧一级片| 亚洲天堂在线观看免费视频 | 四房婷婷| 一本久道综合| 大香蕉熟女| 中文字幕手机在线视频| 色婷婷免费视频| 国产裸体美女网站| 久久久18禁一区二区三区精品| 国产思思99re99在线观看| 婷婷五月天性爱| www.99视频| 大香蕉福利导航| 北条麻纪视频| 免费涩涩无遮挡18国产| 黄色电影一级片| 亚洲无码视频一区| 亚洲视频在线免费观看| www.91超碰在线| 高潮91PORN蝌蚪九色| 91成人在线电影| 91九色视频| 五月婷婷丁香| 91久久精品一区二区三区| 国产l精品久久久久久久久久 | 国产女人18水真多18精品一级做 | 人妻无码专区| 欧美视频操逼| 成人在线日韩| 成人精品一区二区三区中文字幕| 欧美三P囗交做爰XXXⅩ| 国产黄h| 色视频免费在线观看| 日本爱爱免费| 亚洲无码免费在线观看| 黄色网页免费观看| 婷婷射图| 亚洲色久| 大香伊人国产| 97精品欧美91久久久久久久| 亚洲成人日韩| 三级电影久久麻豆| 99在线精品视频观看| 丝袜人妻| 中文字幕激情精品| 日韩精品中文字幕在线观看| JLZZJLZZ亚洲女人| 五月婷婷中文字幕| 久久久精品淫秽色情| 在线黄色AV| 国产无码专区| 中文字幕东京热| 久久久久久久久国产精品| 色77777| 欧美亚洲日韩一区| AV无码在线播放| 91日韩在线| 大香蕉熟女| av先锋资源| 国产一级特黄aaa大片| 日韩免费a| 91久久久久国产一区二区| 91超碰在线观看| 美女人人操| 精品一二三| 中文字幕88页| 日韩成人黄片| 亚洲AV成人片无码网站| 少妇成人网| 91久久| 亚洲青草视频| 在线免费观看网站| av毛片| 午夜福利老司机| 亚洲熟女视频| 安徽妇搡BBBB搡BBBB,另类老妇 | 黄色在线不卡| 亚洲第一色网站| www.欧美精品| 亚洲AV无码一区东京热久久| 成人午夜精品福利免费| 吹潮喷水高潮HD| 亚洲欧美精品| 先锋影音AV资源站| 国产逼| igao在线观看| 91网站免费观看| 亚洲AV无码一区毛片AV| 伊人大香蕉综合在线| 在线观看高清无码| 国产精品色在线| 国产精品777| 人人天天久久| 99无码视频| 特级西西444www大胆高清图片| 黄色二区| 国产精品久久77777| 波多野结衣东京热| 97色在线视频| 欧美日韩视频在线播放| 天干夜操| 日韩黄色三级| 国产免费操逼| 99毛片| 性爱无码AV| 久久AV秘一区二区三区水生| 天天综合字幕一区二区| 中文字幕免费观看视频| 高清一区二区三区| 午夜福利视频3000| 午夜A片| 欧美精产国品一二三区别| 五月婷婷中文字幕| 嫩草久久99www亚洲红桃| 特黄视频| 亚洲爆乳无码一区二区三区| 在线中文字幕777| 四虎成人精品无码永久在线的客服 | 少妇大战28厘米黑人| 人人操超碰在线观看| 高清无码在线免费观看| 97AV视频| 欧美精品久久久久久久久爆乳| 午夜福利1000| 99精品偷自拍| 操少妇视频| 伊人久久大香蕉国产| 亚洲视频免费看| 天堂va欧美ⅴa亚洲va一夜 | 在线观看黄网| 东北骚妇大战黑人视频| 无码一区二区免费| 国产A级毛片久久久久久| 国产性爱网| www.簧片| 欧美成人电影| 日韩欧美A片| 污视频网站免费观看| 熟女探花| 亚洲精品女人久久久| 人人操夜夜| 在线亚洲观看| 一区二区三区在线视频观看| 野花av| 极品美鮑20p| 日本在线不卡一区| 婷婷五月香| 九一亚洲精品| 日本成片网| 色五婷婷| 伊人黄色视频| 丁香五月少妇| 在线看片你懂的| 9I成人免费版视频| 黄色激情网站| 大香蕉久操视频| a片网站在线观看| 综合久久99| 大香蕉超碰在线| 蜜臀久久99久久久久久宅男 | 夜夜操免费视频| 欧一美一婬一伦一区二区三区自慰,| 插菊花综合网亚洲| www香蕉成人片com| WWW色色| 欧美一级日韩三级| 大鸡巴在线视频| 久久久WWW成人免费精品| 在线视频播放| 亚洲无码影院| 99精品久久久久久无码| 亚洲有码在线视频| 日韩免费在线视频观看| 亚洲中文字幕码mv| 神马午夜精品91| 五月天婷婷色播| 国产乱国产乱老熟300部视频| 欧美一级特黄AAAAAA片| 免费人成视频观看| av中文在线| 一区二区三区成人电影| 亚洲第一综合| 午夜福利sw| 亚洲黄色成人网站| 第九色| 免费一级AAAAA片在线播放| 插吧插吧综合网| 精品二区| 在线观看免费A片| 操B影院| 欧美精品一区二区三区蜜臀| 三级片视频网站| 国产黄色小电影| 青青久热| 国产A片一区| 浪潮在线观看完整版| 亚洲国产精品久久久| 欧美一卡| 亚洲AV无码乱码国产| 一本色道精品久久一区二区三区| 美女天天肏| 99精品免费在线观看| 亚洲Aⅴ| 久久无码成人| yw在线观看| 97精品在线| 精品日韩一区二区三区| 丰滿人妻一区二区三| 伊人9| 肏逼网| 欧美精品综合| 亚洲中文字幕免费视频| 免费成人一级片| 永久中文字幕| 西西西444www无码视频| 国产日韩欧美在线| 爱搞搞就搞搞| 无码人妻精品一区二区三区99仓| 欧美成年人网站| 欧美三级欧美三级三级| 99导航| 伊人婷婷色香综合| 国产成人AV片| 日精品| 91超碰人人操| 日B视频在线观看| 免费人成视频在线播放| 午夜mm| 无套进入无套内谢| 久久久一区二区| 亚洲精品福利视频| 天天干天天色天天日| 9999国产精品| 暖暖高清无码| 亚洲欧美另类色图| 欧美午夜影院| 伊人99在线| 日本一本视频| 人人操碰成人网| 日本黄色电影网站| 成人黄色免费网站| 2014天堂网| 婷婷五月天成人电影| 中文字幕第315页| 成人黄色性爱视频| 国产黄色视频免费看| 欧美黄色成人视频| 精品国产香蕉| 人人妻人人澡人人爽久久con| 国产欧美在线观看| 91精品人妻一区二区三区蜜桃| 日韩国产高清无码| 国产欧美综合视频| 国产17c精品视频一二三区| 午夜精品电影| 日本高清无码在线观看| 激情六月丁香| 久久国产毛片| 91蜜桃传媒在线观看| 51妺嘿嘿在线电影免费观看 | 久久久在线视频| 玖热精品| 中文字幕特黄A片| 午夜免费AV| 大香蕉精品一区| 国产精品日韩欧美| 亚洲中文字幕在线观看免费| 日P免费视频| 日韩aaa视频| 能看的黄色视频| 三级黄片免费看| 五月人妻| 九九色播| 日本少妇高潮喷水XXXXXXX| 蜜臀成人片| 超碰v| 四川少妇bbb| 91黄网站在线观看| PORNY九色视频9l自拍| 99热99re6国产线播放| 亚洲日本三级| 男女91视频| 亚洲欧美成人视频| 伊人五月天| 在线婷婷| 综合久久亚洲| 无码V| 丰满人妻一区二区三区精品高| 大鸡吧视频在线观看| 加勒比无码| 日本黄色大片| 99热99| 国产欧美在线观看| 亚洲无码在线播放| 亚洲乱码国产乱码精品天美传媒| 热久久综合网站| 日韩无码黄色电影|