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

MySQL 流式查詢的奧秘與應(yīng)用解析

數(shù)據(jù)庫(kù) MySQL
本文將基于多個(gè)角度針對(duì)流式查詢這技能進(jìn)行深入的分析和演示,希望對(duì)你有幫助。

很久沒寫開篇了,針對(duì)大數(shù)據(jù)采集分析和導(dǎo)出等功能,我們必須在內(nèi)存和性能上做好折中,這其中筆者最愛的就是流式查詢,而本文將基于多個(gè)角度針對(duì)流式查詢這技能進(jìn)行深入的分析和演示,希望對(duì)你有幫助。

詳解流式查詢

1. 關(guān)于IOPS和數(shù)據(jù)吞吐量

為了保證后文講解的流暢,我們這里對(duì)幾個(gè)比較重要的性能指標(biāo)進(jìn)行簡(jiǎn)單的科普,對(duì)于服務(wù)器系統(tǒng)層面,IOPS(Input/Output Per Second)磁盤每秒的讀寫次數(shù),一般以每秒輸入輸出量為單位進(jìn)行衡量。而吞吐量更多的是反應(yīng)的是每秒處理的IO請(qǐng)求,兩者關(guān)系我們可以通過如下兩個(gè)場(chǎng)景了解一下差異:

  • 假設(shè)我們讀取1000個(gè)1kb的數(shù)據(jù),耗時(shí)10s,那么這個(gè)服務(wù)器的數(shù)據(jù)吞吐量100KB/s,IOPS就是100,這種場(chǎng)景更追求IOPS。
  • 假設(shè)我們只有1個(gè)請(qǐng)求去讀取10M的文件,耗時(shí)0.2s,那么這個(gè)服務(wù)器的數(shù)據(jù)吞吐量就是50MB/s,IOPS為5,這個(gè)服務(wù)器就更偏向于吞吐量。

2. MySQL常見的幾種查詢

日常針對(duì)大表數(shù)據(jù)采集導(dǎo)出的功能,我們一般會(huì)采用一下幾種方案:

  • 一次性全量導(dǎo)出
  • 使用分頁(yè)查詢
  • 使用游標(biāo)查詢
  • 流式查詢

我們先來說說全量查詢,這種方案本質(zhì)原理就是一次性將結(jié)果集從MySQL服務(wù)端寫到客戶端程序上,針對(duì)大表數(shù)據(jù)檢索,如果我們的程序沒有足夠的堆內(nèi)存空間,存在內(nèi)存溢出的風(fēng)險(xiǎn):

為了解決OOM問題,我們會(huì)考慮通過分頁(yè)查詢的方式,通過分批處理完成批量數(shù)據(jù)檢索導(dǎo)出的工作,這種方式雖然很好的節(jié)約了堆內(nèi)存空間,但這種方案在代碼實(shí)現(xiàn)層面就已經(jīng)非常復(fù)雜了,開發(fā)者必須考慮:

  • 分頁(yè)計(jì)算(這一步就涉及數(shù)據(jù)掃描,開銷大)
  • 基于分頁(yè)評(píng)估每次分頁(yè)大小
  • 基于頁(yè)數(shù)進(jìn)行循環(huán)查詢
  • 查詢SQL需要針對(duì)深分頁(yè)問題進(jìn)行優(yōu)化

這種方案相較于前者雖然節(jié)省了堆內(nèi)存空間且可以一定程度上避免頻繁的Full GC,對(duì)于開發(fā)者整體素質(zhì)要求較高,并且這種方案在性能表現(xiàn)上也不是很出色:

所以為了避免在開發(fā)層面進(jìn)行手動(dòng)分頁(yè)實(shí)現(xiàn)的復(fù)雜度,我們就想到通過游標(biāo)法進(jìn)行查詢,游標(biāo)也就是cursor,這種查詢方式要求客戶端一次性指明fetchSize,然后服務(wù)端每次都基于給定的fetchSize將數(shù)據(jù)寫給客戶端,直到客戶端將所有數(shù)據(jù)都處理完成。

需要了解的是游標(biāo)查詢這種方案考慮到客戶端未知的處理效率,為保證服務(wù)端能夠一次性將fetch的數(shù)據(jù)寫回到客戶端,MySQL服務(wù)端會(huì)為了這個(gè)查詢建立一個(gè)臨時(shí)空間來緩存數(shù)據(jù),在極端情況下因?yàn)檫@些問題:

  • IOPS飆升
  • 磁盤空間飆升(因?yàn)榕R時(shí)空間無法在緩存中容納,寫入到文件中)
  • fetch設(shè)置過大,SQL查詢經(jīng)常處于阻塞等待IO數(shù)據(jù)的情況

最后我們就來說說本文的重點(diǎn)——流式查詢,當(dāng)客戶端向服務(wù)端發(fā)送SQL請(qǐng)求后,流式查詢會(huì)得到一個(gè)迭代器,客戶端不斷通過ResultSet.next()獲取下一條數(shù)據(jù),服務(wù)端會(huì)按照客戶端接受速率并基于迭代器的偏移量逐步寫入到網(wǎng)絡(luò)buffer中讓客戶端讀取,這種方式很好的解決游標(biāo)查詢逐批次緩存的問題。 但需要注意的是這種方案和上述游標(biāo)查詢一樣,會(huì)因?yàn)閿?shù)據(jù)量的問題,使得連接長(zhǎng)時(shí)間被當(dāng)前線程持有:

3. 流式查詢使用示例

接下來筆者就以常見的ORM框架Mybatis演示一下如何使用流式查詢,假設(shè)我們需要查詢一張user表,對(duì)應(yīng)的我們基于Options注解給出當(dāng)前這個(gè)查詢信息告知查詢r(jià)esultSetType 為只讀,并且指明fetchSize 為MIN_VALUE。同時(shí),看到筆者在方法上給出了一個(gè)ResultHandler,這個(gè)處理用于處理流式查詢響應(yīng)結(jié)果后的回調(diào)處理:

@Select("select * from user  ")
    @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = Integer.MIN_VALUE)
    @ResultType(User.class)
    void selectListByStream(ResultHandler<User> handler);

需要補(bǔ)充說明的是上述三個(gè)配置都必須明確按照要求進(jìn)行配置,原因是在mybatis在執(zhí)行SQL查詢時(shí),StatementImpl會(huì)通過createStreamingResultSet判斷這三個(gè)參數(shù)是否符合要求,只有明確符合要求返回true,后續(xù)的結(jié)果集才能被創(chuàng)建為ResultsetRowsStreaming:

protected boolean createStreamingResultSet() {
        return ((this.query.getResultType() == Type.FORWARD_ONLY) && (this.resultSetConcurrency == java.sql.ResultSet.CONCUR_READ_ONLY)
                && (this.query.getResultFetchSize() == Integer.MIN_VALUE));
    }

對(duì)應(yīng)的我們也給出最后的使用示例,這里筆者用lambda精簡(jiǎn)了一下ResultHandler的聲明,每當(dāng)我們收到流式響應(yīng)數(shù)據(jù)后,直接獲取user并自增一下原子類:

userMapper.selectListByStream(resultContext -> {
                User user = resultContext.getResultObject();
               //執(zhí)行業(yè)務(wù)操作......           

            });

4. 幾種常見操作性能壓測(cè)

簡(jiǎn)單介紹了一下流式查詢的基礎(chǔ)配置和使用之后,我們不妨針對(duì)上述方案進(jìn)行性能和內(nèi)存使用情況壓測(cè),首先筆者已經(jīng)準(zhǔn)備了100w條數(shù)據(jù)并將堆內(nèi)存設(shè)置為512M:

-Xmx512m -Xms512m

我們先給出一個(gè)基于全量查詢的導(dǎo)出寫入到本地txt文件:

try (BufferedWriter outputStream = FileUtil.getWriter("F://tmp/userData.txt", Charset.defaultCharset(), false)) {
            //全量查詢
            List<User> userList = userMapper.selectList(Wrappers.emptyWrapper());
            //遍歷寫入本地文件
            userList.forEach(user -> {
                try {
                    outputStream.write(JSONUtil.toJsonStr(user) + "\r\n");
                    count.getAndIncrement();
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
            });
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

最終100w數(shù)據(jù)導(dǎo)出跑了大約20s:

save count:1000000 cost:20382ms

我們通過jstat指令查看堆內(nèi)存使用情況,觸發(fā)了6次full gc,整體回收花費(fèi)了6s,性能表現(xiàn)非常差勁:

S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
512.0  512.0   0.0    64.0  173568.0 68832.5   349696.0   194931.1  44032.0 41197.8 5888.0 5351.0     95    0.614  13      6.255    6.869

然后就是分頁(yè)查詢,可以看到筆者這里并沒有針對(duì)深分頁(yè)問題進(jìn)行優(yōu)化,明確頁(yè)數(shù)和分批數(shù)后直接進(jìn)行分批查詢導(dǎo)出了:

//定位總數(shù)
        Long c = userMapper.selectCount(Wrappers.emptyWrapper());
        //計(jì)算頁(yè)數(shù)
        int size = 1_0000;
        long pageSize = c % size == 0 ? c / size : c / size + 1;
        //分頁(yè)查詢
        try (BufferedWriter outputStream = FileUtil.getWriter("F://tmp/userData.txt", Charset.defaultCharset(), false)) {
            for (int i = 1; i <= pageSize; i++) {
                PageHelper.startPage(i, size, false);
                userMapper.selectList(Wrappers.emptyWrapper()).stream()
                        .forEach(u -> {
                            try {
                                outputStream.write(JSONUtil.toJsonStr(u) + "\r\n");
                            } catch (IOException e) {
                                throw new RuntimeException(e);
                            }
                            count.incrementAndGet();
                        });

            

            }
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

可以看到這段代碼內(nèi)存使用情況比較穩(wěn)定,但是耗時(shí)大約29s:

jstat -gc 21524
 S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
3584.0 3584.0  0.0   1831.1 167424.0 64921.0   349696.0   22386.0   44288.0 41324.7 5888.0 5362.6     81    0.283   2      0.072    0.355

最后我們給出流式查詢的代碼拉取數(shù)據(jù)并寫入本地文件的示例:

try (BufferedWriter outputStream = FileUtil.getWriter("F://tmp/userData.txt", Charset.defaultCharset(), false)) {
            //流式查詢
            userMapper.selectListByStream(res -> {
                //定位對(duì)象
                User user = res.getResultObject();
                try {
                    //寫入文件
                    outputStream.write(JSONUtil.toJsonStr(user) + "\r\n");
                } catch (IOException e) {
                    throw new RuntimeException(e);
                }
                count.incrementAndGet();

            });
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

最終整體耗時(shí)14s,使用jstat查看gc情況也是非常穩(wěn)定:

S0C    S1C    S0U    S1U      EC       EU        OC         OU       MC     MU    CCSC   CCSU   YGC     YGCT    FGC    FGCT     GCT   
512.0  512.0   0.0    96.0  173568.0 128136.7  349696.0   21416.8   43392.0 40499.1 5760.0 5264.3     79    0.158   2      0.057    0.215

使用jvisualvm也可以看到堆內(nèi)存使用情況非常穩(wěn)定,流式查詢?cè)趦?nèi)存使用和查詢效率上做了很好的平衡:

5. 流式查詢使用注意事項(xiàng)

流式查詢?cè)谑褂眠^程中當(dāng)前客戶端連接會(huì)持有本次查詢的ResultSet,如果沒有沒有將這個(gè)ResultSet關(guān)閉將會(huì)影響其他查詢使用。

在數(shù)據(jù)量較大的情況下,流式查詢會(huì)長(zhǎng)時(shí)間持有當(dāng)前數(shù)據(jù)庫(kù)連接,所以還是可能存在網(wǎng)絡(luò)擁塞的風(fēng)險(xiǎn)。

責(zé)任編輯:趙寧寧 來源: 寫代碼的SharkChili
相關(guān)推薦

2025-03-05 09:30:00

MySQL流式查詢數(shù)據(jù)庫(kù)

2025-01-22 16:00:00

MySQL數(shù)據(jù)庫(kù)Binlog

2024-04-08 07:58:11

Python數(shù)據(jù)類型字符串

2024-04-09 08:57:25

SizeofC++字符串

2023-09-21 16:03:47

大數(shù)據(jù)

2024-12-24 09:17:31

2022-03-18 15:55:15

鴻蒙操作系統(tǒng)架構(gòu)

2009-09-09 15:43:15

2010-08-13 10:56:53

2024-03-07 08:22:51

Java機(jī)制元數(shù)據(jù)

2015-09-23 14:19:38

2025-01-15 12:48:30

2010-06-13 15:28:56

UML基礎(chǔ)與應(yīng)用

2010-11-25 11:25:29

MySQL查詢

2024-02-22 10:36:13

SELECT 語(yǔ)句PostgreSQL數(shù)據(jù)查詢

2023-09-28 09:03:56

開源搜索分析引擎

2012-06-21 08:36:06

LinuxWindows

2024-08-30 09:53:17

Java 8編程集成

2023-02-07 09:37:08

流計(jì)算

2010-05-19 12:44:58

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

中文字幕亚洲精品| 欧美性做爰猛烈叫床潮| 国产视色精品亚洲一区二区| 国产 日韩 欧美 在线| 精品成人影院| 精品少妇一区二区三区在线视频| 欧美变态另类刺激| 男人的天堂在线视频免费观看| 国产99久久久国产精品| 国产成人涩涩涩视频在线观看| www深夜成人a√在线| 欧美wwwwww| 777xxx欧美| 东京热加勒比无码少妇| av免费在线网站| 久久久久国产一区二区三区四区 | 日韩免费av电影| 精品久久久久久亚洲综合网站| 久久午夜精品一区二区| 欧美高跟鞋交xxxxxhd| 大胸美女被爆操| 欧美精品中文| 日韩精品一区二区三区视频播放 | 91肉色超薄丝袜脚交一区二区| 精品999成人| 色妞色视频一区二区三区四区| 黄色a一级视频| 中文字幕一区二区三区四区久久| 欧美性极品xxxx娇小| www.亚洲视频.com| 天堂av资源在线观看| 国产精品国产a| 欧美一区二区在线| 四虎影视2018在线播放alocalhost| 激情另类小说区图片区视频区| 青青草一区二区| 国产一区二区三区影院| 国产精品啊v在线| 精品自在线视频| 欧美在线视频第一页| 天堂美国久久| 日韩在线视频免费观看| 亚洲最大成人综合网| 免费成人高清在线视频theav| 亚洲国产精品yw在线观看| 97中文字幕在线观看| 国产一区二区三区国产精品| 欧美久久一二三四区| 日韩一区二区三区久久| 国产精品99久久久久久董美香 | www.看毛片| 国产一区二区h| 亚洲一区二区少妇| 国产精品一级二级| 国产成人综合自拍| 国产精品久久精品视| 人妻精品一区二区三区| av在线一区二区三区| 精品国产乱码久久久久| 香蕉视频网站在线| 久久久久久免费毛片精品| 欧美性xxxx69| 日本在线观看| 亚洲免费av观看| 免费一级淫片aaa片毛片a级| 都市激情国产精品| 色综合久久中文字幕综合网| 50路60路老熟妇啪啪| 国产精品字幕| 欧美喷潮久久久xxxxx| 欧洲在线免费视频| 亚洲视频国产精品| 日韩精品免费在线| 日本美女xxx| 亚洲女同另类| 国产最新精品视频| 欧美一区免费看| 精品一区二区av| **亚洲第一综合导航网站| 亚洲爱情岛论坛永久| 99久久国产综合精品女不卡| 日韩美女一区| 日本天码aⅴ片在线电影网站| 亚洲第一福利视频在线| 日本999视频| 国产 日韩 欧美| 亚洲激情自拍图| 久久久久久久久福利| 欧美激情第10页| 欧美做爰性生交视频| 91九色蝌蚪91por成人| 成人网在线播放| 亚洲精品国产一区| 欧美男男video| 日本精品视频一区二区| 老女人性生活视频| 少妇精品久久久一区二区| 久久精品在线视频| 中日韩黄色大片| 极品少妇xxxx精品少妇偷拍| 精品免费国产| 91麻豆国产福利在线观看宅福利| 欧美日韩亚洲成人| 污视频在线观看免费网站| 最新亚洲精品| 久久久久久国产免费| 中国a一片一级一片| av在线一区二区| 2021国产视频| 成人国产一区二区三区精品麻豆| 欧美精品一区视频| av最新在线观看| 久久精品导航| 精品国产一区二区三区四区vr| 在线激情小视频| 色综合久久中文综合久久97| 伊人久久一区二区三区| 婷婷亚洲图片| 国产成人一区二| 日本加勒比一区| 亚洲美女在线一区| 色一情一区二区| 狠狠综合久久av一区二区蜜桃| 久久久久久久久久久免费| 国产精品爽爽久久| 国产精品视频免费看| 国产99久久九九精品无码| 国产午夜久久av| 日韩在线www| 免费精品一区二区| 久久久久久久久久久电影| 国产免费黄色一级片| 一区二区亚洲视频| 久热国产精品视频| 国产普通话bbwbbwbbw| 国产精品白丝在线| 爱情岛论坛亚洲首页入口章节| 亚洲欧美成人vr| 奇米影视亚洲狠狠色| 涩涩视频在线观看免费| 精品动漫一区二区三区| 妖精视频一区二区| 亚洲日本黄色| 好看的日韩精品视频在线| 123区在线| 日韩国产一区三区| 手机看片久久久| 久久婷婷色综合| 国产一区二区视频免费在线观看| 夜夜春成人影院| 国产99视频在线观看| 国外av在线| 在线免费观看日本欧美| 国内精品卡一卡二卡三| 免费人成精品欧美精品| 亚洲人成77777| 成人精品视频在线观看| 美日韩在线视频| 可以免费看毛片的网站| 精品国产91久久久| av黄色在线免费观看| 日本不卡一二三区黄网| 亚洲一二三区精品| 日韩欧美激情电影| 欧美在线视频免费播放| 国产一区二区三区福利| 欧美日韩国产电影| 国产无码精品久久久| 91免费看片在线观看| 五月婷婷六月合| 欧美黄色一区二区| 欧美精品人人做人人爱视频| 激情亚洲小说| 欧美国产日韩一区二区在线观看| 天天摸天天干天天操| 91国产免费看| 欧美三级 欧美一级| 99久久免费国产| 一女二男3p波多野结衣| 国产精品黄色| 日韩av高清| 亚洲1区在线观看| 青青在线视频一区二区三区| 免费av在线网址| 欧美精品一区二区久久婷婷| 亚洲中文字幕无码爆乳av| 亚洲视频一区二区免费在线观看| 波多野结衣一二三区| 日韩av网站在线观看| 国产精品视频一二三四区| 亚洲精品小区久久久久久| 成人午夜小视频| 韩国成人漫画| 精品中文字幕在线2019| 波多野结衣在线网站| 精品国产乱码久久久久久1区2区 | 九色91国产| 国产不卡精品在线| 日韩美女主播视频| 草美女在线观看| 日韩中文在线视频| 男女网站在线观看| 精品日韩在线观看| 97人妻精品一区二区三区软件 | 亚洲三级视频网站| 伊人久久综合| 好色先生视频污| 欧美日韩色图| 精选一区二区三区四区五区| 国产亚洲精aa在线看| 国产精品久久久久久久久久新婚| 草草视频在线| 欧美成人合集magnet| a√资源在线| 精品一区二区亚洲| 欧美 日韩 综合| 欧美一区二区三区在线看| 天天综合久久综合| 精品欧美aⅴ在线网站| 久操视频免费在线观看| 最新欧美精品一区二区三区| 摸摸摸bbb毛毛毛片| 99re这里只有精品首页| 黑人玩弄人妻一区二区三区| 国产精品一区二区x88av| 天堂一区在线观看| 青青草原综合久久大伊人精品优势| 青青草原av在线播放| 国产精品久久久亚洲一区| 五十路熟女丰满大屁股| 日韩一区二区免费看| 美女扒开大腿让男人桶| 影音先锋中文字幕一区| 免费网站在线观看视频| 欧美日韩一区二区高清| japanese在线播放| 欧美激情亚洲| 日产精品久久久久久久蜜臀| 正在播放日韩欧美一页 | 国产高清精品一区二区三区| 精品视频一二| 亚洲aa中文字幕| 麻豆精品国产| 97人人香蕉| 成人资源在线播放| 国产视频一区二区不卡| 日韩高清三区| 日本精品一区二区| blacked蜜桃精品一区| 亚洲欧洲久久| 五月天久久777| 999久久欧美人妻一区二区| 欧美视频不卡| 欧美精品久久久久久久自慰| 亚洲在线黄色| 日本va中文字幕| 久久精品久久99精品久久| 日本超碰在线观看| 国产91在线|亚洲| 国产精品麻豆入口| 久久久久九九视频| 小泽玛利亚一区| 亚洲一区二区不卡免费| 日韩精品1区2区| 欧美午夜精品免费| 精品人妻无码一区二区色欲产成人| 精品国产电影一区二区 | zzijzzij亚洲日本成熟少妇| av免费网站在线| 777国产偷窥盗摄精品视频| 亚洲第一会所001| 91免费欧美精品| 黄色免费大全亚洲| 亚洲.欧美.日本.国产综合在线| 亚洲破处大片| 国产综合av在线| 久久精品免费观看| 国产高潮视频在线观看| 久久九九99视频| 天天鲁一鲁摸一摸爽一爽| 亚洲成av人片在线观看无码| 欧美 亚洲 另类 激情 另类| 日韩一卡二卡三卡国产欧美| 欧美少妇另类| 超在线视频97| 台湾佬成人网| 成人国产1314www色视频| 国产乱码精品一区二区三区四区 | 久久高清国产| 欧美污在线观看| 久久久综合精品| 暗呦丨小u女国产精品| 日韩欧美国产成人| 国产成人麻豆精品午夜在线| 亚洲欧洲日产国码av系列天堂| 浪潮av一区| 日产精品99久久久久久| 亚洲精品视频一二三区| 亚洲精品日韩成人| 国产免费成人| 国产清纯白嫩初高中在线观看性色| 国产女人aaa级久久久级| 精品少妇久久久| 在线91免费看| 国产三级在线看| 午夜免费久久久久| 成人综合日日夜夜| 日本高清不卡一区二区三| 亚洲精品专区| 又黄又爽又色的视频| 中文子幕无线码一区tr| 中文字幕第四页| 亚洲第一视频在线观看| www视频在线免费观看| 国产精品久久久久久久久久久新郎 | 丝袜足脚交91精品| 野花国产精品入口| 美女网站视频在线观看| 亚洲人一二三区| 一本大道伊人av久久综合| 国产一区二区三区欧美| 亚洲欧洲高清| 好吊妞www.84com只有这里才有精品 | 久久三级毛片| 日韩精品成人一区二区在线观看| 亚洲深夜激情| 中文字幕在线永久| 亚洲永久免费av| 超碰在线观看av| 美日韩精品免费观看视频| 国产美女视频一区二区 | 亚洲经典自拍| 国产大学生视频| 亚洲va韩国va欧美va| 欧美 日韩 国产 成人 在线 91| 欧美激情精品久久久久久| 深夜激情久久| 欧美做暖暖视频| 成人性色生活片| 国产成年人免费视频| 精品成人a区在线观看| 久色国产在线| 国产一区二区久久久| 日韩视频在线一区二区三区 | 国产黑丝一区二区| 无码av免费一区二区三区试看 | 亚洲午夜免费| 阿v天堂2018| 99久久精品国产导航| 潘金莲一级淫片aaaaaa播放| 亚洲天堂网站在线观看视频| av在线一区不卡| 亚洲最新免费视频| 国产黄人亚洲片| 日本在线视频中文字幕| 亚洲美女视频网| xxxxx.日韩| 潘金莲一级淫片aaaaa免费看| 国产成人精品网址| 日韩三级视频在线播放| 亚洲片av在线| crdy在线观看欧美| www.日本在线视频| 91一区二区在线观看| 正在播放亚洲精品| 久久久精品2019中文字幕神马| eeuss鲁片一区二区三区| 亚洲乱码中文字幕久久孕妇黑人| 国产免费久久精品| aaa级黄色片| 欧洲日韩成人av| 999国产精品| 久久久久久婷婷| 欧美亚洲图片小说| 中文字幕在线播放网址| 精品一区久久久久久| 日本美女视频一区二区| 免费在线观看h片| 亚洲国产成人精品久久| 国精品产品一区| 日韩国产成人无码av毛片| 26uuu久久天堂性欧美| 国产精品伦理一区| 91精品国产电影| 亚洲九九视频| 日韩精品卡通动漫网站| 91精品国产欧美一区二区成人| 高清视频在线观看三级| 中国人体摄影一区二区三区| 99久久精品免费看国产免费软件| 综合久久中文字幕| 欧美激情性做爰免费视频| 欧美色图国产精品| 国产国语老龄妇女a片| 欧美日韩一区不卡| 人在线成免费视频| 欧美另类videosbestsex日本| 久久亚洲私人国产精品va媚药| 国产丝袜在线视频| 国产精品久久久久av|