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

8種常見SQL錯誤用法

共 13550字,需瀏覽 28分鐘

 ·

2020-11-20 21:12

作者:db匠

原文鏈接:https://developer.aliyun.com/article/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 解決該問題就到此為止。但當 LIMIT 子句變成 “LIMIT 1000000,10” 時,程序員仍然會抱怨:我只取10條記錄為什么還是慢?

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

在前端數(shù)據(jù)瀏覽翻頁,或者大數(shù)據(jù)分批導出等場景下,是可以將上一頁的最大值當成參數(shù)作為查詢條件的。SQL 重新設計如下:

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ù)量的增長而發(fā)生變化。

2、隱式轉換

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

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 的策略是將字符串轉換為數(shù)字之后再比較。函數(shù)作用于表字段,索引失效。

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

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

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

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

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

執(zhí)行計劃:

+----+--------------------+-------+-------+---------------+---------+---------+-------+------+-----------------------------------------------------+| 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 = 123AND o.status NOT IN ( 'done' ) ORDER  BY o.parent,                                o.id LIMIT  1) tON o.id = t.id SET    status = 'applying'

執(zhí)行計劃簡化為:

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

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

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

+----+-------------+-------+--------+-------------+---------+---------+---------------+---------+-+| 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í)行時間從1.58秒降低到2毫秒。

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

5、EXISTS語句

MySQL 對待 EXISTS 子句時,仍然采用嵌套子查詢的執(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 < 4AND EXISTS(SELECT 1FROM   message_info m WHERE  n.id = m.neighbor_id AND m.inuser = 'xxx') AND n.topic_type <> 5

執(zhí)行計劃為:

+----+--------------------+-------+------+-----+------------------------------------------+---------+-------+---------+ -----+| 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í)行時間從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 < 4AND n.topic_type <> 5

新的執(zhí)行計劃:

+----+-------------+-------+--------+ -----+------------------------------------------+---------+ -----+------+ -----+| 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、條件下推

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

  • 聚合子查詢;
  • 含有 LIMIT 的子查詢;
  • UNION 或 UNION ALL 子查詢;
  • 輸出字段中的子查詢;
如下面的語句,從執(zhí)行計劃可以看出其條件作用于聚合子查詢之后:
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í)行計劃變?yōu)椋?/span>
+----+-------------+-----------+------+---------------+-------+---------+-------+------+--------------------+| 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 |+----+-------------+-----------+------+---------------+-------+---------+-------+------+--------------------+
關于 MySQL 外部條件不能下推的詳細解釋說明請參考文章:

7、提前縮小范圍

先上初始 SQL 語句:
SELECT * FROM   my_order o LEFT JOIN my_userinfo u ON o.uid = u.uidLEFT JOIN my_productinfo p ON o.pid = p.pid WHERE  ( o.display = 0 ) AND ( o.ostaus = 1 ) ORDER  BY o.selltime DESCLIMIT  0, 15
該SQL語句原意是:先做一系列的左連接,然后排序取前15條記錄。從執(zhí)行計劃也可以看出,最后一步估算排序記錄數(shù)為90萬,時間消耗為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í)行時間縮小為1毫秒左右。
SELECT * FROM (SELECT * FROM   my_order o WHERE  ( o.display = 0 ) AND ( o.ostaus = 1 ) ORDER  BY o.selltime DESCLIMIT  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í)行計劃:子查詢物化后(select_type=DERIVED)參與 JOIN。雖然估算行掃描仍然為90萬,但是利用了索引以及 LIMIT 子句后,實際執(zhí)行時間變得很小。
+----+-------------+------------+--------+---------------+---------+---------+-------+--------+----------------------------------------------------+| 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、中間結果集下推

再來看下面這個已經(jīng)初步優(yōu)化過的例子(左連接中的主表優(yōu)先作用查詢條件):
SELECT    a.*,           c.allocated FROM      ( SELECT   resourceid FROM     my_distribute d WHERE    isdelete = 0AND      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ù)量特別大的情況下會導致整個語句的性能下降。
其實對于子查詢 c,左連接最后結果集只關心能和主表 resourceid 能匹配的數(shù)據(jù)。因此我們可以重寫語句如下,執(zhí)行時間從原來的2秒下降到2毫秒。
SELECT    a.*,           c.allocated FROM      ( SELECT   resourceid FROM     my_distribute d WHERE    isdelete = 0AND      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 = 0AND      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)了多次。這種寫法不僅存在額外的開銷,還使得整個語句顯的繁雜。使用 WITH 語句再次重寫:
WITH a AS( SELECT   resourceid FROM     my_distribute d WHERE    isdelete = 0AND      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

總結

數(shù)據(jù)庫編譯器產(chǎn)生執(zhí)行計劃,決定著SQL的實際執(zhí)行方式。但是編譯器只是盡力服務,所有數(shù)據(jù)庫的編譯器都不是盡善盡美的。
上述提到的多數(shù)場景,在其它數(shù)據(jù)庫中也存在性能問題。了解數(shù)據(jù)庫編譯器的特性,才能避規(guī)其短處,寫出高性能的SQL語句。
程序員在設計數(shù)據(jù)模型以及編寫SQL語句時,要把算法的思想或意識帶進來。
編寫復雜SQL語句要養(yǎng)成使用 WITH 語句的習慣。簡潔且思路清晰的SQL語句也能減小數(shù)據(jù)庫的負擔 。

有道無術,術可成;有術無道,止于術

歡迎大家關注Java之道公眾號


好文章,我在看??

瀏覽 36
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報
評論
圖片
表情
推薦
點贊
評論
收藏
分享

手機掃一掃分享

分享
舉報

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

国产秋霞理论久久久电影-婷婷色九月综合激情丁香-欧美在线观看乱妇视频-精品国avA久久久久久久-国产乱码精品一区二区三区亚洲人-欧美熟妇一区二区三区蜜桃视频 91丝袜一区二区三区| 成人爱爱视频| 99国产精品免费视频观看8| 性爱AV在线| 狠狠狠狠狠狠狠狠狠狠| 五月天AV网站| 人妻中文字幕网| 久久三级电影| 亚洲AV高清无码| 青娱乐国产在线视频| 国产主播中文字幕| 老司机精品| 一区二区三区高清不卡| 日本久久婷婷| 粉嫩AV蜜乳AV蜜臀AV蜂腰AV | 青草国产| 精品一区二区久久久久久久网站 | 白嫩外女BBWBBWBBW| 亚洲无码123| 午夜福利播放| 国产亚洲精品久久久久久桃色| 国产日韩欧美成人| 日产久久久久久| 青青草东路热vv| 一区二区三区不卡视频| 搡BBBB搡BBB搡我瞎了| 91丨九色丨蝌蚪丨成人| 波多野结衣av中文字幕| 成年人视频免费看| 精品一区二区三区四区五区六区 | 在线观看av网站中文字幕| 久热超碰| 亚洲天堂在线视频观看| 日韩黄片视频| 亚洲午夜无码| 日老女人的逼| 日本精品中文字幕| 日本老熟妇| 手机av在线观看| 黄色网页在线| 亚洲有码在线视频| 在线国产激情视频| jizz国产视频| 欧美国产另类| 日本一区二区三区视频在线观看 | 精品人妻中文字幕视频| 99re视频播放| 美日韩在线观看| 蜜桃视频一区二区三区| 欧洲精品码一区二区三区免费看| 免费亚洲婷婷| 狼友视频在线观看18| 国产高清不卡| 18禁www| 亚洲无码视频一区| 午夜性视频| 亚洲精品一区二区三| 无卡无码| 黄色一级免费电影| 操逼视频免费网站| 欧美日色| 国产草草| 特级西西444www大精品| 亚洲日韩欧美一区二区天天天| 黄色永久网站| 少妇厨房愉情理伦BD在线观看 | 国精品无码人妻一区二区三区| 91在线无码精品入口电车| 成人精品二区| 婷婷在线观看免费| 特一级黄A片| 91久久精品国产91久久公交车 | 97人人爽人人爽人人人| 激情开心五月天| 精品一区二区三区免费毛片| 国产视频二区| 国产免费黄色片| 日韩黄色电影网址| 网址你懂得| 亚洲视频在线免费播放| 美日韩中文字幕| 一卡二卡无码| 午夜无码精品一区二区三区99午| 色欲av伊人久久大香线蕉影院| 国产一级a毛一级a做免费图片| 91热在线| 久久综合中文| 婷婷伊人綜合中文字幕| 久久99热这里只频精品6学生| 日本激情网| 五月婷婷婷| 色综合久久88色综合天天| 国产成人毛片| 91在线无码| 91久色| 久久久精品人妻| 日日干夜夜撸| 国产亚洲午夜久久久成人电影| 又a又黄高清无码视频| 日本成人性爱视频网站一区| 大吊无码| 黄色在线网| 韩日高清无码| 国产麻豆免费| 欧美老妇另类BBwBBw| 欧美三级欧美三级三级| 三级毛片在线| 久久足交| 久久538| 亚洲精品一级二级三级| 免费无码进口视频| 91麻豆精品传媒国产| 一区在线播放| 五月婷婷综合网| 大香蕉久久久| 偷拍视频网站北条麻妃| 中文字幕无码一区二区| 亚洲五月激情| 99久久成人| 九九九网站| 亚洲免费看黄| 一级黄色在线| 欧美三级片在线视频| 久久99久久99久久99人受| 97人人爽人人爽人人人| 国产黄色A片| 欧美不卡视频| 精品久久免费| 刘玥精品A片在线观看| 亚洲欧美日韩在线| 久久国产精品精品国产色婷婷| 91在线无码精品在线看| 国产视频不卡| 91九色91蝌蚪91窝成人| 黄色一级免费| 国产色情性黄片Av网站| 最近中文字幕2022在线观看A| 亚洲精品图片| 国产3p露脸普通话对白| 国产网站精品| 牛牛精品一区二区| 日本特级黄A片免费观看| 陈冠希和张柏芝mv| 麻豆91麻豆国产传媒| 韩国中文字幕HD久久| A片欧美| 操b视频免费| 欧美日韩第一区| AV福利在线观看| 天天操夜夜操人人操| 天天天天天天操| 日韩第一页| 国产精品大香蕉| AA级黄色视频| 无码在线播放视频| 久久夜夜操| 在线观看网址你懂的| 日本高清一区| 亚洲一区视频| 伊人在线成人视频| 天天草天天日| 无码爆操| 日韩性爱区| 97国产免费| 国产a级毛片| 日韩字幕| 精品国产一二三区| 国产成人黄色电影| 欧美激情爱爱| 91精品综合| 俺去操| 黄色网址五月天| 波多野结衣在线无码视频| 激情久久AV一区AV二区AV三区| 成年人视频在线免费观看| 亚洲欧洲中文字幕| 欧美一区二区三区婷婷五月| 日屄免费视频| 人妻少妇偷人精品久久| 欧美成人内射| 激情色播| 色呦呦一欧美| 国产91嫩草乱婬A片2蜜臀| 操日本女人逼| 亚洲小说欧美激情另类A片小说 | 大香蕉在线网| 国产性爱精品影片免费看| 狠狠操夜夜操| 亚洲AV无码秘翔田| 91成人导航| 麻豆视频在线观看| 伊人久久大综合中文无码| jizzjizz欧美| 成人在线精品| 亚洲AV官方网站| 久久精品无码一区二区无码性色 | av午夜福利| 大香蕉在线电影| 伊人春色AV| 三级AV在线观看| 在线观看黄A片免费网站| 中日韩在线视频| 成人视频免费在线观看| 午夜福利sw| 亚洲AV无码成人精品区久| 蜜臀久久99精品久久久兰草影视| 日韩一级片视频| 龙泽美曦土豪| 午夜激情国产| 五月婷婷丁香在线| 久久视频免费看| 亚洲青草视频| 精品一区二区免费| 爱爱视频h| 人人干人人爽| 在线播放日韩| 另类视频在线| 婷婷五月天成人电影| 免费毛片网站| 日韩免费性爱视频| 91丝袜一区二区三区| 肏屄在线视频| 国产成人精品视频免费看| 女女久久| 国产操比| 好想被c秘好爽n网址| 在线日韩一区二区| 久久久久久91| 欧美成人无码A片免费| 成人国产欧美日韩在线视频| 在线看v片| 国精产品久拍自产在线网站| 在线播放亚洲| 国产精品欧美激情| 国产99自拍| 搡BBBB搡BBB搡我瞎了| 免费无码A片在线观看全| 国产又粗又大又长| 国产精品色视频| 99在线精品视频| 免费看片av| 人人妻人人插| 人妻视频在线| 3D动漫精选啪啪一期二期三期| 亚洲精品成人一二三区| 婷婷五月天在线播放| 国产免费黄色av| 亚洲AV秘无码不卡在线观看| 青青草视频黄| 久久香蕉综合在线| 日本免费黄色小视频| 大香蕉久热| 国产激情在线| 91理论片| 亚洲AV无码免费| 北条麻妃久久视频在线播放| 韩国无码视频在线观看| 99色色网| 久久久精品影院| 夜夜骑夜夜撸| 婷婷视频在线观看| 人人草人人搞| 国产在线观看91| 日本中文字幕无码| 精品国产123| 日韩AV无码一区二区三区| 丰滿老婦BBwBBwBBw| 国产aaaaaaaaaaaaa| 久久午夜一级A片| 91精品国产综合久久久久久| 丰满人妻一区二区三区46| 国产一卡二卡在线| 懂色成人Av| 国产激情在线观看视频| 日韩av一区二区三区| 日本一区二区网站| 日本aa视频| 高清无码视频免费观看| 97精品人人A片免费看| 无码V | 日韩视频一区二区| 国产成人三级在线播放| 中文字幕在线网址| 国产无套在线观看| 精品成人影视| 91精品久久香蕉国产线看观看| 蜜桃视频免费网站| 亚洲高清无码视频在线| 人人摸人人草| 99精品视频网站| 久久国产劲爆∧v内射| 日韩一区二区免费看| 一道本无码在线观看| 婷婷五月丁香六月| 中文字幕亚洲专区| 黄色一级片免费看| 日韩电影免费在线观看| 江苏妇搡BBB搡BBBB| 夜夜骚AV一二三区无码| 婷婷三级| 亚洲艹逼| 先锋资源国产| 亚洲成人福利| 欧美爱爱试看| 18禁激韩| 久九视频| 丁香五月情| 国产美女裸体网站| 青青欧美| 污视频在线免费观看| 天天艹天天| 国产精品一区在线| 伊人私人影院| 操比网| 欧美日本激情| 亚洲电影AV| 久久久性爱| 欧美激情四射| 国产成人午夜| 亚洲免费小黄片| 伊人大香蕉久久| 特黄视频在线观看| 自拍偷拍一区| 超碰91免费在线观看| 人人澡人人澡人人| 国产乱伦片、| 在线黄色AV| 人妻japanesewoman| AV天天干| 成人网站在线| 日韩爆乳一区二区三区| 国产精品国产伦子伦露看| 在线亚洲欧洲| 在线成人网站| 成人免费网站在线观看| 国产视频网| chinese高潮老女人| 韩国无码免费| 国产区在线视频| 91久久综合亚洲鲁鲁五月天| 人人摸人人操人人看| 久草婷婷| 亚洲福利网| 中文字幕在线观看免费高清电影| 9l蝌蚪PORNY中文| 激情小说激情视频| 亚洲无码一区二区三| 久久艹视频| 日本黄色视频。| 蜜桃av在线播放| AV在线大香蕉| 欧美综合在线观看| 精品久久无码中文字幕| 国产www在线观看| 亚洲一区高清无码| 欧美成人猛片AAAAAAA| 99久久久精品久久久久久| 五月激情网站| 操逼超碰| 黄色片在线看| 高清中文字幕在线A片| 国产综合久久久777777| 国产探花在线观看| 中文字幕高清AⅤ| 9l视频自拍蝌蚪9l成人| 91视频美女内射| 亚洲区成人777777精品| 天天夜夜爽| 北条麻妃在线观看| 大色鬼在线天堂精品| 91成人视频在线播放| 波多野结衣精品无码| 日韩欧美中文字幕在线观看| 夜夜嗨AV| 波多野结衣毛片| 一级A色情大片| 日本一区二区三| 中文字幕乱码中文字幕| 四季AV一区二区凹凸懂色桃花| 久久aa| 亚洲视频精选| 久久99综合| 岛国AV免费在线| www黄片| 青青草原视频在线| 干欧美美女| 亚洲中文字幕免费视频| 亚洲久爱| 国产精品一二区| 欧美视频h| 国产一区二区三区18| av网站在线免费观看| 欧美性爱天天| 人人妻人人妻| a片网站在线观看| 色噜噜狠狠色综无码久久合欧美| 久久AV网站| 中文字幕你懂的在线三级| 久热福利| 东北骚妇大战黑人视频| 欧美日韩小视频| 成人亚洲欧美| 开心色婷婷| 成人精品毛片| 精品国产精品三级精品AV网址| 中文字幕无码在线视频| 精品一区二区三区四区五区六区 | 91亚洲一线产区二线产区| av无码不卡| AV在线天堂| 亚l洲视频在线观看| 成人性视频Aⅴ| 国产精品自拍小视频| 九九九网站| 麻豆传媒在线观看| 牛牛精品视频| 欧美激情亚洲无码| 国产高清在线观看| 超碰免费91| 久久天堂影院| 黄网免费在线观看| 麻豆熟女| 正在播放ADN156松下纱荣子| www.男人天堂| 国产精品色综合| 性欧美亚洲| 啪啪视频最新地址发布页| AV大片免费看| www.狠狠操| 欧美日韩精品一区| 高清无码一区二区在线| 亚洲精品自拍| 91狠狠色丁香婷婷综合久久精品| 日韩AV一区二区在线观看| 毛片网站在线| 国产精品福利导航| 91香蕉国产在线观看| 亚洲,制服,综合,中文| 影音先锋av在线资源| 精品國產一區二區三區久久蜜月| 四川少妇BBBB槡BBBB槡| 在桌下含她的花蒂和舌头H视频| 亚洲AV无码成人精品区天堂小说 | 男女黄色免费网站| 中文人妻| 台湾成人综合网| 丰满熟妇高潮呻吟无码| 又a又黄高清无码视频| 一区二区三区网| 免费色色视频| 91大神在线免费看| 亚洲色欲色欲www在线成人网| 91精品视频网| 日韩一级片子| 激情网五月天| 在线观看黄视频| 日本午夜影院| 日本精品人妻无码77777| 高清无码二区| 五月丁香婷婷在线观看| 日韩无码不卡| 玖玖大香蕉| 男女av网站| 国产乱伦熟女| 91精品一区二区| 91人妻人人爽人人澡人人爽 | 操比视频在线观看| 日韩在线小电影| 欧美一级在线| 国产操比| 中文字幕12页| 欧美性之站| 日韩综合一区| 北条麻妃在线中文字幕| 免费看黄色的网站| 中文字幕观看av| 在线观看黄片视频| 久久中文娱乐网| 国产又黄又大又粗的视频| 亚洲天堂免费视频| 伊人综合网站| 色色三区| 中文字幕网站在线观看| A无码| 91老熟女视频| 国产成人无码一区二区在线播放| 色老板免费精品无码免费视频| 欧美黄视频| 99久久婷婷国产综合精品漫| 久久视频99| 青青草免费在线视| 亚洲精品成人电影| 三区在线| 9久久精品| 五月婷婷黄色| 91五月天| 亚洲AV永久无码精品| 天天爽夜夜| 午夜噜噜| 欧美一二三区黄色免费视屏| 高清无码视频在线播放| 国产精品啪啪视频| 99热只有精| 日韩aaa视频| 狼友视频在线观看| www.av91| 久热视频在线| 黑种人配中国少妇HD| 午夜福利100| 久久水蜜桃| aaa无码| 一级黄色片网站| 国产精品久久免费视频| 国产一级a片| 91麻豆精品传媒国产| 欧美性BBB槡BBB槡BBB| 欧洲综合视频| 69AV视频网站| 先锋影音资源站| 91久久国产综合| 三个黑人猛躁我一晚上| 亚洲中文字幕有码| 国产人妻人伦精品1国产丝袜| 成人黄色在线视频| 亚洲一级在线观看| 亚洲秘一区二区三区-精品亚洲二区- | 日韩99热| 超碰中文字幕| 粉粉嫩嫩的18虎白女| 欧美毛片在线观看| 亚洲A∨无码无在线观看| 国产一级AA大片毛片| 欧美日韩国产尤物主播精品| 九九热精品视频在线播放| 久久久久亚洲AV无码麻豆| 夜色88V精品国产亚洲| 亚洲jiZZjiZZ日本少妇| 亚洲AV无码第一区二区三区蜜桃| 夜夜欢天天干| a在线观看视频| 美女天天干| 在线观看18s| 天天视频亚洲| 精品國產一區二區三區久久蜜月| 欧美一区二区在线| 久久一级视频| 久久视频国产| 精品国产毛片| 亚洲无码人妻在线| 天天色天天干天天| 色眯眯久久爱| 人人干人人爽| 春色av| 天天射天天射| 永久久久久久久| 影音先锋蜜桃| 中文在线а√天堂8| 成人午夜黄色| 欧美日韩成人在线| 日韩AV免费看| 国产娇小13videos糟蹋| www.日批| 网站啪啪| 四虎成人精品永久免费AV九九| 欧美日韩AV| 辽宁模特张雪馨视频最新| 黄网在线看| 人人肏| 综合一区二区三区| 一本色道久久综合无码| 久久波多野结衣一区二区| 成人在线三级| 在线观看视频免费无码| 国产欧美综合视频一区二区在线 | 不卡在线| 俺去俺来也在线www色情网| 亚洲Aⅴ| 免费+无码+精品| 美女做爱在线观看| 亚洲性爱网站| 一区二区三区在线观看| 人人操av| 国产在线拍揄自揄拍无码网站新闻 | 51妺妺嘿嘿午夜成人A片| 国产精品永久| 亚洲AV无码乱码国产精品蜜芽| 免费视频久久| 亚洲超碰在线观看| sm国产在线调教视频| 激情五月天av| 蜜乳AV一区二区三区| 成人二区三区| 操碧一区| 中文字幕无码视频| 久久av电影| 天天草天天射| 91丨国产丨精品丨丝袜| 能看的av网站| 中文电视剧字幕在线播放免费视频 | 亚洲无码99| aaa免费视频| 天天日天天搞| 一区二区入口| 无码秘蜜桃吴梦梦| 国产剧情一区二区三区| 乱轮视频| 日本豆花视频| 欧美一区二区精品| av色欲| 尻屄电影| 免费国产h| 国产激情免费视频| 国精产品一区一区三区四区| 欧美黄色一级| 四虎久久| 99久久综合| 欧美日韩精品一区二区三区钱| 香蕉婷婷| 国产二级片| 久草婷婷| 国产一区二区视频在线观看| 日韩在线观看一区| 豆花视频logo| 亚洲三级黄色| 久草精品视频| 国产精品午夜福利视频| 日韩高清无码毛片| 大香蕉三级| 国产午夜视频在线| 欧美日韩人妻| 亚洲伊人综合| 天天中文字幕| 色网站操逼| 黄色A片免费观看| 麻豆成人精品| 一插菊花综合视频| 免费成人在线看片黄| 国产久久久久久久久久| 日韩三级在线播放| 亚洲免费成人电影| 国内精品久久久久久久久久| 精品成人AV| 久久久久久久网| 可以免费观看的毛片| 日韩在线观看av| 亚洲无码视频在线免费观看 | 男女www视频| 国产娇小13videos糟蹋| 欧美一级特黄A片免费看| 欧美日韩在线电影| 国产精品久久毛片A片| 91丨PORNY丨丰满人妻网站| 色五月中文字幕| 国产精品夜夜爽7777777| 午夜久久| 欧美理论片在线观看| 91亚洲精品在线| 91精品国自产在线观看| 特极西西444WWW大胆无码| 欧美日韩高清在线| 日朝无码| 中文字幕日韩欧美| 蜜桃一区二区三区| 天天色色| 欧美mv日韩mv国产网站| 欧美视频操逼| 极品美女扒开粉嫩小泬高潮一| 夫妻成人免费看片一区二区| 欧美性爱永久| 丁香婷婷五月综合影院| 巨爆乳肉感一区二区三区视频 | 国产免费成人视频| 18禁网站在线| 中日韩欧美一级A片免费| 69精品视频| 日本高清无码| 蜜桔视频嫩草蜜桃| 韩日黄色| 少妇人妻一区| 日夜夜操| 在线观看一级片| 麻豆国产91| eeuss久久| 69国产精品无码免费| 久操婷婷| 亚洲视频一区二区三区四区娇小视频在线观看视频 | 亚洲天堂中文字幕| 国产无套在线观看| 色av影音先锋无吗一区| 按摩性高湖婬AAA片A片中国| 久久精品无码一区二区无码性色 | 性生活黄色视频| 精品一区二区久久久久久久网站 | 国产黄色录像| 天天操天天干欧美精品| 久久午夜福利视频| 俺也来俺也去WWW色| 亚洲黄色激情| 成人小说亚洲一区二区三区| 成人午夜| 欧美一级婬片AAAAAA片| 婷婷社区五月天| 在线观看视频91| 亚洲av观看| 爽好紧别夹喷水欧美| 国产亚洲午夜久久久成人电影| 无码三级AV| 亚洲超级高清无码第一在线视频观看 | 亚洲性网| 日韩在线免费视频| 夜夜AV| 日韩三级一区二区| 免费看污网站| 日韩熟妇无码| AV2014天堂网| jizz在线观看| 国产av中文字幕| 亚洲一区视频| 亚洲性精| 日韩欧美国产成人| 中文字幕中文字幕无码| 一本色道久久| 久久色资源| 日本A片免费看| 18禁日韩| 无码人妻AⅤ一区二区三区A片一| 人妻无码中文久久久久专区| 波多野结衣99| 黄色视频网站在线播放| 激情久久av| 亚洲专区在线播放| 在线无码视频播放| 亚洲精品午夜福利| 最新va在线观看| 小早川怜子精品一区二区| www.91在线视频| 日本中文无码视频| 自拍偷拍综合网| 性无码一区二区三区无码免费 | 亚洲成人在线视频观看| 黑人精品XXX一区一二区| 最近最经典中文MV字幕| 五月天亚洲色图| 91精品国产综合久久蜜臀使用方法 | 94精品人人人| 红桃91人妻爽人妻爽| 乱子伦毛片国产| 亚洲性爱一区二区| 中文字幕日韩有码| 黄片网址| 蜜桃视频免费网站| 日本免费黄色小视频| 日韩爱爱网站| 日本爱爱小视频| 青青草手机在线视频| 伊人在线成人视频| 91AV一区二区三区| 免费无码在线视频| 亚洲无码视频免费| 欧美性爱视频免费看| 牛牛AV| 四川少妇搡BBw搡BBBB搡| 一区电影网| 激情五月天视频| 特黄aaaaaaaa真人毛片| 69av在线观看| 97色在线视频| 久久国色| 激情伊人| 国产精品久久久久久久久久久免费看 | 日本一区二区三区在线观看网站| 免费在线看黄色| 蜜桃视频一区| 久久精品视频久久| 日韩在线99| 67194国产| 99热这里只有精品1| 成人777| 国产AV一区二区三区四区五区 | 波多野结衣av一区| 黄片视频在线| 成人性爱av| 国产麻豆| 思思热99热| 波多野结衣视频免费在线观看| 三个黑人猛躁我一晚上| 激情网五月天| 人人操碰成人网| 免费观看一级黄片| 久久中文娱乐网| 特级西西44www无码| 青娱乐超碰| 亚洲精品成人无码熟妇在线| 午夜福利澳| 国产毛片网| 黄色免费网站在线观看| 国产亚洲99久久精品| 91ccc| 97精品人人妻人人| 免费看黄色大片| 麻豆精品传媒国产剧的特点| 国产91免费| 国产男女啪啪视频| 清清草视频| 天天爽天天| 日韩久久精品视频| 日韩人妻无码一区二区三区| 日韩一区二区三区视频| 欧美区在线观看| 成人先锋影音| 日本无码免费视频| 青娱乐国产| 国产1024在线| 四虎日韩| 久久精品9| 蜜桃av.38| 国产高清AV在线| 亚洲精品久久久久avwww潮水| 学生妹毛片| 久久久女女女女999久久| 国产一级AV免费观看| 色呦呦一区二区三区| 国产AV影院| 大香蕉亚洲网| 先锋影音在线| 91探花视频精选在线播放| 曰本精品综合网在线| 无码一页| 搡中国东北老女人视频| 国产一级内射| 三级片网页| 婷婷丁香五月亚洲| 免费三级网址| 伊人丁香| 羞羞午夜| 中文字幕在线精品| 中文字幕东京热加勒比| 国产成人精品久久二区二区91 | 大香蕉777| 日本三级片无码| 国产h在线| 影音先锋三级| 国产寡妇亲子伦一区二区三区四区| 狠狠地日| 老熟女露脸25分钟91秒| 日本不卡一区二区三区四区| 丰滿人妻-区二区三区| 亚洲精品一区二区三| 日本AI高清无码在线观看网址 | 日韩人妻无码一区二区三区| 天天精品| 91大屁股| 日韩中文无| 中文字幕一区二区无码成人| 亚洲欧洲精品成人久久曰影片| 91吴梦梦一区二区传媒| 国产精品毛片久久久久久久| 操逼操逼操| 欧美成人在线免费视频| 亚洲视频第一页| 操逼高清无码| 无码日韩精品一区二区免费96| 久久久久一区二区三区| 好吊顶亚洲AV大香蕉色色| 真实国产乱子伦毛片| 色94色.欧美.setu| 日韩小视频+国产| 69精品无码成人久久久久久| 黄色视频在线观看18| 国产福利在线导航| 亚洲无套内射| 免费国产视频| 91香蕉网站| 欧美第五页| 亚洲v| 人人摸人人操人人爱| 人人爱人人爽| 山东熟妇搡BBBB搡BBBB| 热久久最新| 色色视频在线观看| 国产精品视频| 麻豆秘在线观看国产| 黄色视频网站在线免费观看| 69天堂| 成人在线无码视频| av怡红院| 黄色大片久草| 激情综合在线| 国产一级免费| 国产精品一区网站| 在线国产福利| 成人福利| 麻豆传媒一区| 国产夫妻自拍AV| yw在线观看| 欧一美一婬一伦一区?| 国产啊啊啊啊| 日本天堂Tv视频在线观看| 午夜8050| 99热中文|