精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

MySQL 分頁查詢優化指南

數據庫 MySQL
本文通過一張大表結合一個分頁查詢的場景為讀者演示的大表分頁查詢的技巧,希望對你有幫助。

本文以MySQL8為例演示一下分頁查詢技巧和常見優化思路,希望對你有幫助。

一、業務妥協向的非跳頁查詢

該問題實際上有兩種比較常見的方案,一種是search_after上下翻頁查詢,如方案名所說,當用戶進行上下翻頁的時候,永遠都是基于本次分頁的結果的區間定位上一頁和上一頁,這也就意味著該查詢必須要求用戶的數據必須具備有序的字段,例如我們當前查詢到id為20~30的數據,基于該方案我們獲取下一頁的數據就是找到大于30的前10條數據:

對應的我們也給出這條SQL示例:

-- 下一頁(假設id為主鍵且連續)
SELECT * FROM table 
WHERE id > 30
ORDER BY id 
LIMIT 10;

而查詢上一頁也是同理,通過當前頁碼的最小值,定位到上一頁的最大值,從而獲取上一頁的結果區間:

圖片圖片

對應的我們也給出這段SQL示例:

-- 上一頁(需要前端記錄歷史游標)
SELECT * FROM table 
WHERE id < 20
ORDER BY id DESC 
LIMIT 10;

二、支持跳頁的分頁查詢SQL

1. 準備測試數據和腳本

為了方便演示筆者,這里拿出一張曾經作為批量插入的數據表,該表差不多有200w左右的數據:

CREATE TABLE`batch_insert_test` (
`id`intNOTNULL AUTO_INCREMENT,
`fileid_1`varchar(100) DEFAULTNULL,
`fileid_2`varchar(100) DEFAULTNULL,
`fileid_3`varchar(100) DEFAULTNULL,
`fileid_4`varchar(100) DEFAULTNULL,
`fileid_5`varchar(100) DEFAULTNULL,
`fileid_6`varchar(100) DEFAULTNULL,
`fileid_7`varchar(100) DEFAULTNULL,
`fileid_8`varchar(100) DEFAULTNULL,
`fileid_9`varchar(100) DEFAULTNULL,
`fileid_10`varchar(100) DEFAULTNULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1DEFAULTCHARSET=utf8mb3 COMMENT='測試批量插入,一行數據1k左右';

對應的我們也給出批量插入模擬數據的腳本:

-- 創建臨時存儲過程執行批量插入
DELIMITER //
CREATEPROCEDURE batch_insert_data()
BEGIN
    DECLARE i INTDEFAULT0;
    DECLARE batch_count INTDEFAULT1000; -- 每批插入1000條
    DECLARE total_rows INTDEFAULT20000000; -- 總插入量200w
    
    -- 顯示開始時間
    SELECTCONCAT('開始批量插入數據: ', NOW()) AS message;
    
    -- 使用事務提高性能
    STARTTRANSACTION;
    
    WHILE i < total_rows DO
        -- 構建批量插入語句
        SET @insert_sql = 'INSERT INTO batch_insert_test (fileid_1, fileid_2, fileid_3, fileid_4, fileid_5, fileid_6, fileid_7, fileid_8, fileid_9, fileid_10) VALUES ';
        
        -- 生成當前批次的1000條數據
        SET @batch_values = '';
        SET @j = 0;
        WHILE @j < batch_count AND i < total_rows DO
            -- 生成隨機UUID格式的fileid
            SET @uuid = REPLACE(UUID(), '-', '');
            
            -- 添加到批量值
            IF @j > 0 THEN
                SET @batch_values = CONCAT(@batch_values, ',');
            ENDIF;
            
            SET @batch_values = CONCAT(@batch_values, 
                '("', @uuid, '","', @uuid, '","', @uuid, '","', @uuid, '","', @uuid, '",',
                '"', @uuid, '","', @uuid, '","', @uuid, '","', @uuid, '","', @uuid, '")');
            
            SET @j = @j + 1;
            SET i = i + 1;
        ENDWHILE;
        
        -- 執行批量插入
        SET @sql = CONCAT(@insert_sql, @batch_values);
        PREPARE stmt FROM @sql;
        EXECUTE stmt;
        DEALLOCATEPREPARE stmt;
        
        -- 每插入10萬條顯示進度
        IF i % 100000 = 0 THEN
            SELECTCONCAT('已插入: ', i, ' 條記錄, 進度: ', ROUND(i/total_rows*100, 2), '%, 時間: ', NOW()) AS progress;
        ENDIF;
    ENDWHILE;
    
    COMMIT;
    
    -- 顯示完成時間
    SELECTCONCAT('批量插入完成! 總插入量: ', i, ' 條, 結束時間: ', NOW()) AS message;
END//
DELIMITER ;

-- 執行存儲過程
CALL batch_insert_data();

-- 刪除臨時存儲過程
DROPPROCEDUREIFEXISTS batch_insert_data;

2. 如何limit檢索

按照分頁查詢公式,查詢第N頁的sql就是limit (page-1)*size, size,所以筆者對如下幾個分頁查詢進行實驗,不難看出,隨著分頁深度的增加,查詢也變得十分耗時:

select * from batch_insert_test bit2 limit 10,10;
select * from batch_insert_test bit2 limit 100,10;
select * from batch_insert_test bit2 limit 1000,10;
select * from batch_insert_test bit2 limit 10000,10;
select * from batch_insert_test bit2 limit 100000,10;
select * from batch_insert_test bit2 limit 1000000,10;
select * from batch_insert_test bit2 limit 5000000,10;

查看第500w頁的數據10條,花費了將近10s:

select * from batch_insert_test limit 5000000,10;

因為查詢時沒有使用任何索引,所以查詢時直接進行完整的table scan即針對整顆聚簇索引樹的非空data域進行掃描檢索:

查看其執行計劃,可以發現本次查詢走了全表掃描,性能表現非常差勁:

id|select_type|table|partitions|type|possible_keys|key|key_len|ref|rows   |filtered|Extra|
--+-----------+-----+----------+----+-------------+---+-------+---+-------+--------+-----+
 1|SIMPLE     |batch_insert_test |          |ALL |             |   |       |   |9004073|   100.0|     |

所以我們需要對這些SQL進行改造,因為筆者這張表是以有序自增id作為主鍵的,所以我們可以很好的利用這一點,通過定位當前頁的第一個id,然后通過這個id篩選對應頁的數據:

對應SQL如下所示,經過筆者的實驗耗時大約在500ms左右:

select
 *
from
 batch_insert_test 
where
 id >=(select id from batch_insert_test bit2 limit 5000000,1)
 limit 10;

查看這條sql的執行計劃可以發現,這條sql是直接通過索引直接定位id,避免走向葉子節點直接返回,再通過走索引的方式進行范圍查詢性能提升了不少。

id|select_type|table|partitions|type |possible_keys|key    |key_len|ref|rows |filtered|Extra                         |
--+-----------+-----+----------+-----+-------------+-------+-------+---+-----+--------+------------------------------+
 1|PRIMARY    |     |          |     |             |       |       |   |     |        |no matching row in const table|
 2|SUBQUERY   |bit2 |          |index|             |PRIMARY|4      |   |38677|   100.0|Using index                   |

當然,我們也可以通過子查詢的方式先定位到索引區間,然后再和查詢的表進行關聯完成檢索,性能表現也差不多,這里不多做贅述了:

select
 b1.*
from
 batch_insert_test b1
innerjoin (
select
id
from
  batch_insert_test
limit5000000,
10) as b2 on
 b1.id = b2.id;

3. limit量級多少合適

接下來就是limit數據量的選擇了,有些讀者可能為了方便直接在業務上進行改造,一次性查詢大幾十萬數據給用戶。 可以看到隨著數據量的增加,查詢耗時主鍵增大,所以讀者在進行這方面考慮的時候務必要結合壓測,根據自己業務上所能容忍的延遲涉及最大的pageSize,以筆者為例大約10w條以內的數據查詢性能差異是不大的(上下相差200ms左右):

select * from batch_insert_test bit2 limit 1000000,10;
select * from batch_insert_test bit2 limit 1000000,100;
select * from batch_insert_test bit2 limit 1000000,1000;
select * from batch_insert_test bit2 limit 1000000,10000;
select * from batch_insert_test bit2 limit 1000000,100000;
select * from batch_insert_test bit2 limit 1000000,1000000;
select * from batch_insert_test bit2 limit 1000000,10000000;

4. 減少查詢的字段

還有一點細節上的優化,MySQL的基本單位是頁,所以每次查詢都是以頁為單位進行查詢,所以高效的查詢也要求我們用盡可能少的塊查到存儲盡可能多的數據,所以查詢時我們建議沒有用到的列就不要查詢來了。

以筆者為例,只需用到3個字段,則直接將*改為了id,fileid_1 ,fileid_4

select
 id,fileid_1 ,fileid_4 
from
 batch_insert_test bit2

5. 利用索引覆蓋

延遲關聯查詢法在若帶有通過其它字段進行分頁查詢或者排序時,我們務必針對該字段創建一個索引,假設我們要查詢19001頁的數據,對應的SQL如下所示:

select
 id,fileid_1 ,fileid_4,fileid_8
from
 batch_insert_test 
 order by fileid_8 limit 190000,10;

假設分頁查詢有一個limit_count記錄分頁偏移量,如果file_8沒有創建索引,這條查詢的執行過程為:

  • 進行全表掃描,并基于filesort完成數據排序
  • 基于排序結果掃描到第一條符合要求的數據返回給server層。
  • 此時server層發現limit_count為0,即沒有完成跳躍篩選的工作,故舍棄這條記錄,limit_count++。
  • 重復步驟2執行190000次。
  • 步驟4完成后,返回10條完整的記錄給客戶端。

因為涉及文件排序和全表掃描,所以這條SQL的查詢表現比較差勁,查詢耗時為1m39s ,對應的我們也給出相應的執行計劃印證:

id|select_type|table            |partitions|type|possible_keys|key|key_len|ref|rows    |filtered|Extra         |
--+-----------+-----------------+----------+----+-------------+---+-------+---+--------+--------+--------------+
 1|SIMPLE     |batch_insert_test|          |ALL |             |   |       |   |19554981|   100.0|Using filesort|

所以在此基礎上,我們會考慮在fileid_8 上增加一個索引,為后續的優化做鋪墊:

CREATE INDEX batch_insert_test_fileid_8_IDX USING BTREE ON db.batch_insert_test (fileid_8);

有了索引之后,使用二級索引進行排序,查詢耗時變為400ms,但這還不夠,原因很簡單,通過下述的SQL很好的利用二級索引完成排序,但是檢索數據時整體過程還是:

  • 基于二級索引完成排序
  • 基于排序結果掃描到第一條符合要求,通過回表定位到完整的數據返回給server層
  • 此時server層發現limit_count為0,即沒有完成跳躍篩選的工作,故舍棄這條記錄,limit_count++。
  • 重復步驟2和步驟3執行190000次。
  • 步驟4完成后,返回10條完整的記錄給客戶端。

因為二級索引b+樹記錄的是索引和主鍵的映射,若需要投影其它字段,還需要經過回表這一步:

對應的我們也給出執行計劃:

id|select_type|table            |partitions|type |possible_keys|key                           |key_len|ref|rows  |filtered|Extra|
--+-----------+-----------------+----------+-----+-------------+------------------------------+-------+---+------+--------+-----+
 1|SIMPLE     |batch_insert_test|          |index|             |batch_insert_test_fileid_8_IDX|303    |   |190010|   100.0|     |

因為我們基于fileid_8創建了二級索引,所以我們可以借助MySQL中索引覆蓋的特性,在排序時通過掃描二級索引定位到主鍵索引區間,并基于這個主鍵區間一次性到聚簇索引樹上獲取所有數據,避免多次回表的開銷。

對應的我們給出下面這條SQL,需要注意的是MySQL默認語法不允許in直接和子查詢的select id 子句一起使用,若使用該語句則會拋出This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery';異常,所以筆者對應的SQL上增加了將select id這個子查詢結果構建成一張只有id的虛表t1和外部關聯:

select
 id,
 fileid_1 ,
 fileid_4,
 fileid_8
from
 batch_insert_test
WHERE
idIN ( SELECT  t1.id from ( selectidfrom batch_insert_test sub orderby fileid_8 limit190000,10) as t1);

對應查詢結果一下子優化至20ms,從執行結果上可以看出:

  • 子查詢直接Using index直接拿到主鍵,雖然評估掃描大約是190010,但是避免了回表,性能較為可觀。
  • 主表batch_insert_test通過聚簇索引id和被驅動表t1直接關聯,快速得到數據。

三、小結

來簡單小結一下,本文通過一張大表結合一個分頁查詢的場景為讀者演示的大表分頁查詢的技巧,整體來說,針對大表查詢時,我們的SQL優化要遵循以下幾點:

  • 盡可能利用索引,確保用最小的開銷得到索引。
  • 結合業務場景和服務器性能壓測出最合適的limit數據量。
  • 盡量不要查詢沒必要的列。
  • 利用好索引覆蓋避免回表的開銷。
責任編輯:趙寧寧 來源: 寫代碼的SharkChili
相關推薦

2010-11-25 14:21:16

MySQL查詢分頁

2019-09-11 10:40:49

MySQL大分頁查詢數據庫

2017-07-25 15:35:07

MysqlMysql優化LIMIT分頁

2019-11-15 10:01:07

MySQL數據庫數據

2025-01-15 12:48:30

2018-09-06 16:46:33

數據庫MySQL分頁查詢

2024-05-23 10:19:57

2023-02-26 23:43:43

MySQL數據庫分頁查詢

2010-06-12 15:31:04

MySQL查詢優化

2009-05-15 10:11:55

數據庫查詢查詢性能分頁瀏覽

2021-01-31 17:50:41

數據庫查詢程序員

2013-06-26 16:12:21

MySQL集群性能優化

2010-11-18 13:40:48

mysql分頁查詢

2018-06-07 08:54:01

MySQL性能優化索引

2010-09-26 15:29:13

sql查詢分頁

2021-06-03 19:55:55

MySQ查詢優化

2020-08-12 15:00:55

MYSQL優化數據庫

2010-06-10 12:37:27

MySQL分頁查詢

2010-11-25 14:33:26

MySQL查詢分頁

2011-08-19 09:30:42

分頁查詢SQL ServerMySQL
點贊
收藏

51CTO技術棧公眾號

欧美国产禁国产网站cc| 99热在线精品观看| 欧美精品1区2区| 免费观看黄色大片| 成人午夜福利视频| 午夜一级久久| 中文字幕av一区二区三区谷原希美| 三级视频中文字幕| 亚洲精品白浆| www成人在线观看| 国产免费成人av| 久草免费新视频| 综合色就爱涩涩涩综合婷婷| 欧美日韩一区二区三区视频| av一区二区三区免费观看| 欧美老女人性开放| 国产一区在线观看视频| 久久精品中文字幕免费mv| 国产乱淫av麻豆国产免费| 91精品韩国| 亚洲一区二区三区四区不卡| 无码免费一区二区三区免费播放 | 国产精品最新在线观看| 国产一级中文字幕| 久久在线电影| 亚洲欧美精品中文字幕在线| 日本黄色一级网站| 日韩不卡视频在线观看| 亚洲aaa精品| 天天成人综合网| 极品美乳网红视频免费在线观看| 国产精品99久久久久| 国产精品美女在线| 久久久久久久久久久久久久av| 久久久久久久久久久久久久| 亚洲欧美一区二区三区在线| 午夜影院免费版| 日日夜夜亚洲| 在线看一区二区| 成人毛片一区二区| 在线三级中文| 亚洲视频一二区| 亚洲午夜在线观看| 国产视频精品久久| 久久久久久电影| 免费一区二区三区在在线视频| www.蜜桃av.com| 精品一区二区三区在线观看| 国产精品亚洲精品| 嫩草影院一区二区三区| 香蕉av777xxx色综合一区| 国模gogo一区二区大胆私拍 | 国产成人精品国内自产拍免费看| 中文字幕第28页| 韩日精品视频| 欧美国产在线电影| 中文字幕影音先锋| 亚洲精品成人| 不卡av电影在线观看| 欧美做爰啪啪xxxⅹ性| 91精品啪在线观看国产81旧版| 色偷偷偷综合中文字幕;dd| 国产精品成人无码免费| 日本a口亚洲| 色七七影院综合| 可以免费看av的网址| 欧美1级片网站| 日韩一区二区精品视频| 日韩国产第一页| 欧美精选一区| 欧美激情图片区| 99免费在线观看| 国产亚洲高清视频| 国产成人精品免费视频| 中文在线观看av| 久久激情五月婷婷| 亚洲最大成人网色| 青青青国产在线视频| 69av.com| 精品欧美久久| 久久精品国产精品亚洲| 亚洲怡红院在线观看| 欧美精品一卡| 91精品国产乱码久久久久久久久| 国产成人免费观看视频| 久久亚洲不卡| 成人在线视频福利| 蜜臀av免费在线观看| 91在线观看免费视频| 日本视频一区在线观看| 麻豆视频在线免费观看| 亚洲一卡二卡三卡四卡无卡久久| 国产人妻777人伦精品hd| 日韩精品影片| 日韩欧美高清dvd碟片| 波多野结衣av在线免费观看| 日韩精品一卡| 欧美激情2020午夜免费观看| 天天综合天天干| 美国十次了思思久久精品导航 | 国产裸体美女永久免费无遮挡| 久久99国产乱子伦精品免费| 成人免费在线看片| 国产黄在线观看| 一区二区三区国产精品| 红桃av在线播放| 国产精品亚洲一区二区在线观看 | 国产精品亚洲一区二区三区| av中文字幕免费| 91色|porny| 日韩中文在线字幕| 成人自拍av| 精品日韩av一区二区| 伊人影院综合网| 激情另类综合| 国产欧美在线看| 日韩精品系列| 一区二区三区四区不卡视频| 欧美私人情侣网站| 91亚洲无吗| 久久精品国产清自在天天线 | 免费在线观看黄色| 欧美性猛交xxx乱大交3蜜桃| 久久久青草青青国产亚洲免观| 在线看成人av电影| 日韩av中字| 欧美精品一区二区三区一线天视频| 东京热无码av男人的天堂| 亚洲另类视频| 99re在线视频观看| 欧美69xxx| 91久久精品一区二区| 无码人妻久久一区二区三区蜜桃| 久久影视一区| 国产精品久久久久77777| 熟妇人妻一区二区三区四区| 亚洲精品免费播放| 最新免费av网址| 精品国产中文字幕第一页| 午夜精品一区二区三区在线播放| 国产精品亚洲lv粉色| 欧美经典一区二区| www黄色av| 国偷自产视频一区二区久| 欧美成人免费在线观看| 国产又粗又猛又色又| 国产精品无人区| 波多结衣在线观看| 欧美日韩一二三四| 国产精品成人av性教育| 国产三区四区在线观看| 在线观看国产91| 国产在线观看h| 日韩不卡一二三区| 日本一区不卡| www.久久| 少妇av一区二区三区| 伊人网站在线观看| 国产精品麻豆久久久| 亚洲一区在线不卡| 久久亚洲成人| 亚洲va欧美va国产综合剧情| 麻豆传媒在线免费| 欧美一区二区视频在线观看2020| 青草影院在线观看| 国产精品一区专区| 久久av综合网| 老牛影视av一区二区在线观看| 77777少妇光屁股久久一区| 亚洲欧美自偷自拍| 日本精品视频一区二区| 亚洲精品www| 午夜在线观看一区| 麻豆国产一区二区| 成年人黄色在线观看| 欧美日韩黄网站| 91高清视频在线免费观看| 日本啊v在线| 欧美日韩一级片网站| 神马午夜精品91| www.亚洲激情.com| 日韩手机在线观看视频| 久久久久久久久国产一区| 国产成人av一区二区三区| 成人免费图片免费观看| 亚洲天堂网在线观看| 国产又黄又大又爽| 亚洲成人综合网站| 中文字幕免费视频| 国产精品亚洲午夜一区二区三区 | 日韩欧美第一页| 香蕉视频久久久| 国产精品99久久久久久久女警| 奇米精品一区二区三区| 欧美一区电影| 91精品免费看| 美女搞黄视频在线观看| 深夜精品寂寞黄网站在线观看| 精品久久久无码中文字幕| 日韩欧美国产免费播放| 天海翼在线视频| 99精品国产99久久久久久白柏| 国产aaaaa毛片| 激情久久五月| 亚洲在线视频一区二区| 粉嫩一区二区三区四区公司1| 国产成人aa精品一区在线播放| av片在线观看| 有码中文亚洲精品| 韩国av免费在线| 7777精品伊人久久久大香线蕉最新版| 日本少妇全体裸体洗澡| 国产精品美女一区二区在线观看| 日本黄色录像片| 精品一区中文字幕| 亚洲视频在线a| 亚洲人成高清| 400部精品国偷自产在线观看| 一本色道久久综合狠狠躁的番外| 国产精品二区一区二区aⅴ污介绍| 亚洲午夜精品久久久久久人妖| 国产精品黑丝在线播放| 欧美日韩精品免费观看视一区二区| 国产精品1区在线| 国产精品扒开腿爽爽爽视频| 波多野结衣视频一区二区| 免费不卡在线观看av| 都市激情一区| 日韩精品免费看| 日本高清视频网站| 日韩三级免费观看| 91av国产精品| 精品视频在线免费观看| 日韩欧美不卡视频| 亚洲国产精品一区二区www| 我要看黄色一级片| 国产精品色哟哟| 玖玖爱在线观看| 91丨九色丨国产丨porny| 日本黄色大片在线观看| 国产成人在线免费观看| 日本55丰满熟妇厨房伦| 精品一区二区三区日韩| 欧美成年人视频在线观看| 久久精品一区二区三区中文字幕| 黄色免费视频大全| 在线亚洲观看| 国产一级爱c视频| 亚洲黄色视屏| 岛国大片在线播放 | 精品国产一区二区三区在线| 小小影院久久| 99久久久无码国产精品性色戒| 久久国产综合| 一区二区三区在线视频111| 成人一级毛片| 亚洲精品乱码久久久久久蜜桃91| 欧洲三级视频| 色姑娘综合网| 四虎成人av| 国产一二三四五| 欧美国产高清| 欧美成人三级在线视频| 一本不卡影院| 欧美精品一区二区三区免费播放| 日韩精品福利网| 五月天婷婷亚洲| 国产在线麻豆精品观看| 色哟哟在线观看视频| 成人综合在线视频| 最近中文字幕无免费| 久久久久青草大香线综合精品| 少妇按摩一区二区三区| 国产精品嫩草99a| 成人高潮免费视频| 欧美成人高清| 久久久久久国产| 在线免费观看a视频| 久久久伊人日本| 成人香蕉视频| 国产精品日韩久久久久| 国产欧美视频在线| 精品网站在线看| 精品av一区二区| 国产成人免费高清视频| 亚洲区欧美区| 中文字幕亚洲乱码| 丁香一区二区三区| av小说在线观看| 亚洲欧美日韩综合aⅴ视频| 国产精彩视频在线观看| 日韩欧美aⅴ综合网站发布| 一级黄在线观看| 亚洲成人黄色网| 国产爆初菊在线观看免费视频网站| 久久精品人人做人人爽| 国产高清中文字幕在线| 国产精品丝袜白浆摸在线| 欧美久久亚洲| 日产精品久久久一区二区| 欧美日本一区二区视频在线观看| 国产a级一级片| 国产美女视频91| 欧美丰满少妇人妻精品| 国产精品理伦片| 狠狠躁夜夜躁人人爽天天高潮| 欧美日韩欧美一区二区| 欧美一级在线免费观看| 按摩亚洲人久久| 波多野结衣亚洲| 操一操视频一区| 欧美日韩一二三四| www黄色日本| 国产精品一区专区| 国产精品综合激情| 欧美日韩国产在线| 朝桐光av在线一区二区三区| 中文字幕日韩在线播放| 免费一二一二在线视频| 亚洲r级在线观看| japanese国产精品| 青青视频在线播放| av不卡免费电影| 欧美性猛交xxxxx少妇| 欧美日韩综合不卡| 国产永久免费高清在线观看视频| 久久久免费观看视频| 亚洲伊人精品酒店| 四虎影视永久免费在线观看一区二区三区| 精品二区视频| 欧美一区二区三区影院| 国产精品久久久久久久久免费丝袜 | 91在线一区二区三区| 久草福利资源在线观看| 欧美一区永久视频免费观看| 91视频免费观看网站| 国产日韩欧美| 日本精品一二三| 亚洲精选免费视频| 一区二区三区黄| 搡老女人一区二区三区视频tv| 3d性欧美动漫精品xxxx软件| 免费国产在线精品一区二区三区| 影音先锋亚洲电影| 秘密基地免费观看完整版中文 | caoporn91| 9191久久久久久久久久久| 免费大片在线观看www| 国产精品永久免费观看| 第九色区aⅴ天堂久久香| 亚洲最大综合网| 国产精品全国免费观看高清 | av网站免费在线看| 欧亚洲嫩模精品一区三区| 激情综合闲人网| 国产精品视频久久久久| 99国产**精品****| 中文字幕视频三区| 亚洲人精品午夜| 亚洲精品久久久久久无码色欲四季| 色综合久久悠悠| 国产精品极品国产中出| 亚洲熟妇国产熟妇肥婆| 91老司机福利 在线| 日韩精品一区二区亚洲av| 亚洲人成在线观看| 九九久久国产| 国产91在线亚洲| 99国产精品久久久久| 欧美性猛交bbbbb精品| 亚洲色图激情小说| 狂野欧美性猛交xxxx| 99re99热| 成人午夜在线免费| 国内自拍视频在线播放| 中文字幕精品www乱入免费视频| 黄色成人小视频| 男人天堂新网址| 久久午夜羞羞影院免费观看| 伊人免费在线观看高清版| 欧美国产日韩精品| 久久爱www成人| 污污视频网站在线| 亚洲国产中文字幕在线视频综合| 性高潮久久久久久久久久| 国产精品27p| 欧美精品一卡| 素人fc2av清纯18岁| 欧美日韩精品一区二区在线播放| 午夜小视频在线观看| 九色综合婷婷综合| 精品无码三级在线观看视频| 中文在线观看免费网站| 日韩激情视频在线播放| 中文字幕日本一区| 一女被多男玩喷潮视频| 中文字幕日韩欧美一区二区三区| 亚洲国产精品久久久久爰性色| 亚洲成人av一区二区三区| 一级特黄a大片免费|