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

被問傻了:從MySQL讀取100w數(shù)據(jù)進(jìn)行處理,怎么做?

數(shù)據(jù)庫 MySQL
默認(rèn)情況下,完整的檢索結(jié)果集會(huì)將其存儲(chǔ)在內(nèi)存中。在大多數(shù)情況下,這是最有效的操作方式,并且由于 MySQL 網(wǎng)絡(luò)協(xié)議的設(shè)計(jì),因此更易于實(shí)現(xiàn)。

大數(shù)據(jù)量操作的場景大致如下:

  • 數(shù)據(jù)遷移
  • 數(shù)據(jù)導(dǎo)出
  • 批量處理數(shù)據(jù)

在實(shí)際工作中當(dāng)指定查詢數(shù)據(jù)過大時(shí),我們一般使用分頁查詢的方式一頁一頁的將數(shù)據(jù)放到內(nèi)存處理。但有些情況不需要分頁的方式查詢數(shù)據(jù)或分很大一頁查詢數(shù)據(jù)時(shí),如果一下子將數(shù)據(jù)全部加載出來到內(nèi)存中,很可能會(huì)發(fā)生OOM(內(nèi)存溢出);而且查詢會(huì)很慢,因?yàn)榭蚣芎馁M(fèi)大量的時(shí)間和內(nèi)存,去把數(shù)據(jù)庫查詢的結(jié)果封裝成我們想要的對象(實(shí)體類)。

舉例:在業(yè)務(wù)系統(tǒng)需要從 MySQL 數(shù)據(jù)庫里讀取 100w 數(shù)據(jù)行進(jìn)行處理,應(yīng)該怎么做?

做法通常如下:

  • 常規(guī)查詢: 一次性讀取 100w 數(shù)據(jù)到 JVM 內(nèi)存中,或者分頁讀取
  • 流式查詢:建立長連接,利用服務(wù)端游標(biāo),每次讀取一條加載到 JVM 內(nèi)存(多次獲取,一次一行)
  • 游標(biāo)查詢: 和流式一樣,通過 fetchSize 參數(shù),控制一次讀取多少條數(shù)據(jù)(多次獲取,一次多行)

一、常規(guī)查詢

默認(rèn)情況下,完整的檢索結(jié)果集會(huì)將其存儲(chǔ)在內(nèi)存中。在大多數(shù)情況下,這是最有效的操作方式,并且由于 MySQL 網(wǎng)絡(luò)協(xié)議的設(shè)計(jì),因此更易于實(shí)現(xiàn)。

舉例:假設(shè)單表 100w 數(shù)據(jù)量,一般會(huì)采用分頁的方式查詢:

@Mapper
public interface BigDataSearchMapper extends BaseMapper<BigDataSearchEntity> {


    @Select('SELECT bds.* FROM big_data_search bds ${ew.customSqlSegment} ')
    Page<BigDataSearchEntity> pageList(@Param('page') Page<BigDataSearchEntity> page, @Param(Constants.WRAPPER) QueryWrapper<BigDataSearchEntity> queryWrapper);


}

注:該示例使用的 MybatisPlus。

該方式比較簡單,如果在不考慮 LIMIT 深分頁優(yōu)化情況下,估計(jì)你的數(shù)據(jù)庫服務(wù)器就噶皮了,或者你能等上幾十分鐘或幾小時(shí),甚至幾天時(shí)間檢索數(shù)據(jù)。

二、流式查詢

流式查詢指的是查詢成功后不是返回一個(gè)集合而是返回一個(gè)迭代器,應(yīng)用每次從迭代器取一條查詢結(jié)果。流式查詢的好處是能夠降低內(nèi)存使用。

如果沒有流式查詢,我們想要從數(shù)據(jù)庫取 100w 條記錄而又沒有足夠的內(nèi)存時(shí),就不得不分頁查詢,而分頁查詢效率取決于表設(shè)計(jì),如果設(shè)計(jì)的不好,就無法執(zhí)行高效的分頁查詢。因此流式查詢是一個(gè)數(shù)據(jù)庫訪問框架必須具備的功能。

MyBatis 中使用流式查詢避免數(shù)據(jù)量過大導(dǎo)致 OOM ,但在流式查詢的過程當(dāng)中,數(shù)據(jù)庫連接是保持打開狀態(tài)的,因此要注意的是:

  • 執(zhí)行一個(gè)流式查詢后,數(shù)據(jù)庫訪問框架就不負(fù)責(zé)關(guān)閉數(shù)據(jù)庫連接了,需要應(yīng)用在取完數(shù)據(jù)后自己關(guān)閉
  • 必須先讀取(或關(guān)閉)結(jié)果集中的所有行,然后才能對連接發(fā)出任何其他查詢,否則將引發(fā)異常

MyBatis 流式查詢接口

MyBatis 提供了一個(gè)叫 org.apache.ibatis.cursor.Cursor 的接口類用于流式查詢,這個(gè)接口繼承了 java.io.Closeable 和 java.lang.Iterable 接口,由此可知:

  • Cursor 是可關(guān)閉的
  • Cursor 是可遍歷的

除此之外,Cursor 還提供了三個(gè)方法:

  • isOpen(): 用于在取數(shù)據(jù)之前判斷 Cursor 對象是否是打開狀態(tài)。只有當(dāng)打開時(shí) Cursor 才能取數(shù)據(jù)
  • isConsumed(): 用于判斷查詢結(jié)果是否全部取完
  • getCurrentIndex(): 返回已經(jīng)獲取了多少條數(shù)據(jù)

使用流式查詢,則要保持對產(chǎn)生結(jié)果集的語句所引用的表的并發(fā)訪問,因?yàn)槠洳樵儠?huì)獨(dú)占連接,所以必須盡快處理。

為什么要用流式查詢?

如果有一個(gè)很大的查詢結(jié)果需要遍歷處理,又不想一次性將結(jié)果集裝入客戶端內(nèi)存,就可以考慮使用流式查詢。

分庫分表場景下,單個(gè)表的查詢結(jié)果集雖然不大,但如果某個(gè)查詢跨了多個(gè)庫多個(gè)表,又要做結(jié)果集的合并、排序等動(dòng)作,依然有可能撐爆內(nèi)存;詳細(xì)研究了sharding-sphere的代碼不難發(fā)現(xiàn),除了group by與order by字段不一樣之外,其他的場景都非常適合使用流式查詢,可以最大限度的降低對客戶端內(nèi)存的消耗。

三、游標(biāo)查詢

對大量數(shù)據(jù)進(jìn)行處理時(shí),為防止內(nèi)存泄漏情況發(fā)生,也可以采用游標(biāo)方式進(jìn)行數(shù)據(jù)查詢處理。這種處理方式比常規(guī)查詢要快很多。

當(dāng)查詢百萬級的數(shù)據(jù)的時(shí)候,還可以使用游標(biāo)方式進(jìn)行數(shù)據(jù)查詢處理,不僅可以節(jié)省內(nèi)存的消耗,而且還不需要一次性取出所有數(shù)據(jù),可以進(jìn)行逐條處理或逐條取出部分批量處理。一次查詢指定 fetchSize 的數(shù)據(jù),直到把數(shù)據(jù)全部處理完。

Mybatis 的處理加了兩個(gè)注解:@Options 和 @ResultType

@Mapper
public interface BigDataSearchMapper extends BaseMapper<BigDataSearchEntity> {


    // 方式一 多次獲取,一次多行
    @Select('SELECT bds.* FROM big_data_search bds ${ew.customSqlSegment} ')
    @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 1000000)
    Page<BigDataSearchEntity> pageList(@Param('page') Page<BigDataSearchEntity> page, @Param(Constants.WRAPPER) QueryWrapper<BigDataSearchEntity> queryWrapper);
    
    // 方式二 一次獲取,一次一行
    @Select('SELECT bds.* FROM big_data_search bds ${ew.customSqlSegment} ')
    @Options(resultSetType = ResultSetType.FORWARD_ONLY, fetchSize = 100000)
    @ResultType(BigDataSearchEntity.class)
    void listData(@Param(Constants.WRAPPER) QueryWrapper<BigDataSearchEntity> queryWrapper, ResultHandler<BigDataSearchEntity> handler);


}

@Options

  • ResultSet.FORWORD_ONLY:結(jié)果集的游標(biāo)只能向下滾動(dòng)
  • ResultSet.SCROLL_INSENSITIVE:結(jié)果集的游標(biāo)可以上下移動(dòng),當(dāng)數(shù)據(jù)庫變化時(shí),當(dāng)前結(jié)果集不變
  • ResultSet.SCROLL_SENSITIVE:返回可滾動(dòng)的結(jié)果集,當(dāng)數(shù)據(jù)庫變化時(shí),當(dāng)前結(jié)果集同步改變
  • fetchSize:每次獲取量

@ResultType

  • @ResultType(BigDataSearchEntity.class):轉(zhuǎn)換成返回實(shí)體類型

注意:返回類型必須為 void ,因?yàn)椴樵兊慕Y(jié)果在 ResultHandler 里處理數(shù)據(jù),所以這個(gè) hander 也是必須的,可以使用 lambda 實(shí)現(xiàn)一個(gè)依次處理邏輯。

注意:

雖然上面的代碼中都有 @Options 但實(shí)際操作卻有不同:

  • 方式一是多次查詢,一次返回多條
  • 方式二是一次查詢,一次返回一條

原因:

Oracle 是從服務(wù)器一次取出 fetch size 條記錄放在客戶端,客戶端處理完成一個(gè)批次后再向服務(wù)器取下一個(gè)批次,直到所有數(shù)據(jù)處理完成。

MySQL 是在執(zhí)行 ResultSet.next() 方法時(shí),會(huì)通過數(shù)據(jù)庫連接一條一條的返回。flush buffer 的過程是阻塞式的,如果網(wǎng)絡(luò)中發(fā)生了擁塞,send buffer 被填滿,會(huì)導(dǎo)致 buffer 一直 flush 不出去,那 MySQL 的處理線程會(huì)阻塞,從而避免數(shù)據(jù)把客戶端內(nèi)存撐爆。

非流式查詢和流式查詢區(qū)別:

  • 非流式查詢:內(nèi)存會(huì)隨著查詢記錄的增長而近乎直線增長
  • 流式查詢:內(nèi)存會(huì)保持穩(wěn)定,不會(huì)隨著記錄的增長而增長。其內(nèi)存大小取決于批處理大小BATCH_SIZE的設(shè)置,該尺寸越大,內(nèi)存會(huì)越大。所以BATCH_SIZE應(yīng)該根據(jù)業(yè)務(wù)情況設(shè)置合適的大小

另外要切記每次處理完一批結(jié)果要記得釋放存儲(chǔ)每批數(shù)據(jù)的臨時(shí)容器,即上文中的gxids.clear();

責(zé)任編輯:武曉燕 來源: JAVA日知錄
相關(guān)推薦

2021-06-23 06:48:42

秒殺Java電商

2019-08-23 09:03:04

盤口數(shù)據(jù)數(shù)據(jù)庫緩存

2025-06-03 02:10:00

2023-09-27 22:44:18

數(shù)據(jù)遷移數(shù)據(jù)庫

2021-07-09 05:52:36

架構(gòu)開發(fā)緩存

2025-11-13 10:02:33

2024-09-05 21:24:02

數(shù)據(jù)庫查詢MySQLlimit

2019-09-16 09:34:39

2011-04-06 14:50:05

SQL查詢效率

2022-11-16 17:10:25

MySQL數(shù)據(jù)事務(wù)

2016-06-28 10:13:04

華為開發(fā)者大賽

2020-07-28 08:36:54

數(shù)據(jù)安全數(shù)據(jù)泄露數(shù)據(jù)

2011-03-11 09:53:46

FacebookMySQL

2017-11-08 12:25:37

小程序運(yùn)營公眾號

2022-03-10 11:25:51

InnoDB優(yōu)化

2016-01-05 16:17:59

云夢數(shù)據(jù)倉

2018-02-07 09:00:09

2021-11-10 05:00:58

數(shù)據(jù)分析運(yùn)營

2015-09-20 18:31:29

阿里云心電數(shù)據(jù)云上安心
點(diǎn)贊
收藏

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

欧美日韩不卡一区| 亚洲国产精品成人综合| 国内精品视频久久| 精品无码人妻一区二区免费蜜桃| 99热播精品免费| 亚洲欧美日韩一区| 开心色怡人综合网站| 亚洲一区二区视频在线播放| 在线观看国产精品入口| 日韩av网站电影| 五月婷婷六月丁香激情| 99久久精品免费看国产小宝寻花| 久久精品欧美一区二区三区不卡| 成人欧美一区二区三区在线湿哒哒| 中文字幕第28页| 日韩精品首页| 国产视频精品在线| 杨幂一区二区国产精品| 在线男人天堂| 亚洲图片自拍偷拍| 亚洲激情一区二区| 亚洲aⅴ在线观看| 国产成人丝袜美腿| 国产精品免费一区| 日本一区二区不卡在线| 亚洲91视频| 夜夜躁日日躁狠狠久久88av| 欧美xxxxx少妇| 91麻豆精品一二三区在线| 欧美午夜宅男影院在线观看| 国产亚洲精品久久久久久久| 99re热久久这里只有精品34| 99re这里只有精品视频首页| 99久久精品免费看国产一区二区三区 | 国产情侣自拍av| 午夜国产精品视频免费体验区| 亚洲午夜未满十八勿入免费观看全集| 中国特级黄色大片| 日韩欧美中文字幕在线视频 | 黄色a级三级三级三级| 中文在线资源| 欧美日韩国产一中文字不卡| 蜜臀精品一区二区| 影音先锋男人资源在线| 亚洲同性gay激情无套| 欧美理论一区二区| 男人的天堂在线| 99久久精品免费看国产| 9a蜜桃久久久久久免费| 精品国产乱码久久久久久蜜臀网站| 日本网站在线观看一区二区三区 | 黄色一级片国产| 国产视频一区二区| 亚洲欧美欧美一区二区三区| 欧美 另类 交| 午夜伦理在线视频| 一区二区三区**美女毛片| 800av在线免费观看| 欧洲一区二区三区| 亚洲一区电影777| jizzjizz国产精品喷水| 蜜桃视频www网站在线观看| 欧美日韩加勒比精品一区| heyzo国产| 蜜臀国产一区| 欧美日韩一区二区电影| 天堂一区在线观看| 欧美电影在线观看一区| 日韩精品一区二区三区在线播放| www.欧美com| 精品成人自拍视频| 亚洲欧美日韩区| 午夜精产品一区二区在线观看的| 精品久久久久久久久久久下田| 在线看欧美日韩| 日本中文字幕免费在线观看| 韩国欧美一区| 欧美在线免费视频| 在线播放亚洲精品| 国产经典欧美精品| 免费av一区二区三区| caoporn国产精品免费视频| 中文字幕日韩一区| 黄网站欧美内射| 日韩欧美一区二区三区在线观看| 欧美三片在线视频观看| 日本中文字幕在线不卡| 思热99re视热频这里只精品| 国产亚洲一区精品| 激情综合五月网| 日韩电影在线观看一区| 亚洲影视九九影院在线观看| 色wwwwww| 最新高清无码专区| 波多野结衣家庭教师在线播放| 亚洲天堂1区| 精品国产一区二区三区av性色| 人人妻人人藻人人爽欧美一区| 日本精品三区| 国语自产偷拍精品视频偷| 国产精品熟女视频| 成人精品一区二区三区中文字幕| 日韩av电影免费在线| 午夜小视频福利在线观看| 色悠久久久久综合欧美99| 三级网站免费看| 精品日韩一区| 97在线视频观看| 国产口爆吞精一区二区| 久久综合狠狠综合久久激情 | 亚洲欧美日韩专区| 91久久久久久久久久久久久| 日本人妖在线| 亚洲一区二区三区国产| 一起操在线视频| 男男gay无套免费视频欧美| 欧美精品午夜视频| 在线观看视频中文字幕| 久久久久久一级片| av日韩一区二区三区| 91精品麻豆| 正在播放亚洲1区| 国产福利拍拍拍| 国产精品18久久久久久久久| 五月天久久狠狠| 欧美日韩视频网站| 亚洲精品v天堂中文字幕| 91插插插插插插| 美女网站一区二区| 欧美综合激情| 最近高清中文在线字幕在线观看1| 日韩一级高清毛片| 国产真实乱在线更新| 日本欧洲一区二区| 色之综合天天综合色天天棕色| 日韩欧美精品一区二区三区| 亚洲国产一区二区三区在线观看 | 男人天堂手机在线| 色综合久久88色综合天天6| 中文字幕无码人妻少妇免费| 欧美三级网页| 丁香婷婷久久久综合精品国产| 成人ww免费完整版在线观看| 欧美精品第一页| 啪啪一区二区三区| 国内精品久久久久影院一蜜桃| 亚洲欧洲三级| 伊人久久大香线蕉综合影院首页| 正在播放亚洲1区| 在线观看视频中文字幕| 一色屋精品亚洲香蕉网站| 亚洲美女性囗交| 亚洲精彩视频| 超碰97人人人人人蜜桃| 欧美hdxxx| 亚洲精品一区二区三区福利| 日本在线视频免费| 91在线视频官网| 999精品网站| 久久亚洲国产| 亚洲va电影大全| 男男gaygays亚洲| 日韩精品中文字幕有码专区| 国产精品视频一区在线观看| 久久久久久久久久久久久夜| 亚洲一级免费观看| 亚洲成人日韩| 国产欧美日韩伦理| 欧美男体视频| 久久精品国产清自在天天线| 亚洲AV无码精品色毛片浪潮| 欧美日韩国产页| 少妇av片在线观看| 国产酒店精品激情| 少妇高潮喷水在线观看| 国产免费久久| 91久久精品国产91久久性色tv| 91av久久| 色yeye香蕉凹凸一区二区av| 成人1区2区3区| 大伊人狠狠躁夜夜躁av一区| 亚洲ⅴ国产v天堂a无码二区| 国内成人精品2018免费看| 农民人伦一区二区三区| 九一成人免费视频| 91在线|亚洲| 亚洲欧洲美洲av| 久久久av网站| 你懂的免费在线观看视频网站| 欧美精品第一页| 六月丁香激情综合| 综合婷婷亚洲小说| 特大黑人巨人吊xxxx| 麻豆国产精品官网| 少妇无码av无码专区在线观看 | 久久久久999| 日韩中文字幕影院| 欧洲视频一区二区| 久久久久久久99| 国产精品美女久久久久aⅴ国产馆| 巨乳女教师的诱惑| 麻豆9191精品国产| 四虎4hu永久免费入口| 久久av超碰| 成人情视频高清免费观看电影| 亚洲a∨精品一区二区三区导航| 久久99亚洲精品| 粉嫩av在线播放| 亚洲国产成人91精品| 91久久精品国产91性色69 | 九九九九免费视频| 欧美成人久久| 亚洲巨乳在线观看| 亚洲第一论坛sis| 国产精品日韩一区二区三区 | 久久精品国产一区二区三区日韩| 99re8精品视频在线观看| 欧洲美女7788成人免费视频| 超碰在线中文字幕| 久久综合国产精品台湾中文娱乐网| 美丽的姑娘在线观看免费动漫| 精品国产免费视频| 国产三级漂亮女教师| 欧美性一级生活| 国产99久久久| 欧美日韩国产丝袜美女| 国产黄色片视频| 亚洲资源在线观看| 东方av正在进入| 综合久久给合久久狠狠狠97色| 日本人亚洲人jjzzjjz| 久久久久久久久岛国免费| 粉嫩av蜜桃av蜜臀av| a级高清视频欧美日韩| 涩视频在线观看| 国产suv一区二区三区88区| 成年人网站av| 国产伦理精品不卡| 五月六月丁香婷婷| 国产乱子伦视频一区二区三区| 亚洲欧美国产中文| 免费高清成人在线| 天天干天天色天天干| 久久国产精品99精品国产| 亚洲免费一级视频| 麻豆91小视频| 天天综合成人网| 国产精品91一区二区| 国产大学生av| 成人永久免费视频| 日批在线观看视频| 91色porny| 久久精品视频18| 日本一区二区三区在线不卡| 人与嘼交av免费| 18成人在线观看| 欧美精品一区二区蜜桃| 亚洲成人av在线电影| 亚洲 欧美 日韩 综合| 欧美日韩中文字幕日韩欧美| 中文字幕在线欧美| 欧美视频一区二区三区| 国产一区二区三区四区视频| 日韩一区二区三区在线观看| 亚洲精品久久久蜜桃动漫| 亚洲国产高清自拍| 可以直接在线观看的av| 综合av色偷偷网| 亚洲奶水xxxx哺乳期| 97高清免费视频| 久久野战av| 成人免费福利视频| 国产精品乱战久久久| 欧美日韩国产精品一卡| 久久综合电影| av女优在线播放| 久久久水蜜桃av免费网站| www.久久久精品| 高清av一区二区| av男人的天堂av| 一区二区在线观看免费视频播放| 日本熟妇毛茸茸丰满| 欧美中文字幕亚洲一区二区va在线| 夜夜躁狠狠躁日日躁av| 精品久久久久久无| 成人在线视频成人| 欧美激情18p| 欧美日韩视频免费观看| 91人成网站www| 要久久电视剧全集免费| 日韩中文在线字幕| 久久国产日本精品| 欧美一级大片免费看| 国产亚洲欧美一区在线观看| 欧美又粗又大又长| 91福利在线看| 欧洲成人一区二区三区| 色一区av在线| 中文字幕在线看片| 91视频免费在线观看| 精品产国自在拍| 黄页网站大全在线观看| 国产麻豆午夜三级精品| 在线观看日本中文字幕| 亚洲一二三专区| 一区二区三区黄| 亚洲色图五月天| 成年人视频免费在线播放| 成人网在线视频| 国产日产精品_国产精品毛片| 国内外成人激情免费视频| 日日摸夜夜添夜夜添精品视频 | 中文字幕一区二区三区不卡在线| 日本在线视频中文字幕| 91精品国产麻豆国产自产在线| 黄网在线观看| 2021国产精品视频| 风间由美性色一区二区三区四区| 中文字幕av日韩精品| 日韩制服丝袜先锋影音| 久久久久9999| 亚洲午夜视频在线| 国产成人精品a视频| 色偷偷综合社区| 一二区成人影院电影网| 欧美不卡三区| 性一交一乱一区二区洋洋av| 美女露出粉嫩尿囗让男人桶| 亚洲精选在线视频| 国产精品久久欧美久久一区| 国产亚洲一区精品| 免费欧美电影| 日本不卡在线播放| 久久av一区| 国产ts在线播放| 色婷婷综合中文久久一本| 天天干视频在线| 韩剧1988免费观看全集| 好吊妞国产欧美日韩免费观看网站| 免费在线精品视频| 国产一区视频网站| 午夜爱爱毛片xxxx视频免费看| 欧美日韩国产高清一区| av在线播放av| 国产精品自拍偷拍| 青青草91久久久久久久久| 五月婷婷狠狠操| 中文字幕欧美日本乱码一线二线 | 美女高潮久久久| 亚洲天堂最新地址| 欧美日韩精品一区二区三区| chinese偷拍一区二区三区| 国产精品永久免费| 欧美电影《轻佻寡妇》| 男女污污视频网站| 亚洲欧美日韩中文播放| 亚洲高清视频在线播放| 韩国精品美女www爽爽爽视频| 天堂99x99es久久精品免费| 99精品视频在线看| 国产欧美综合色| 亚洲一区二区视频在线播放| 欧美理论电影在线播放| av综合网页| 国产精品欧美激情在线观看| 国产区在线观看成人精品| 11024精品一区二区三区日韩| 久久综合免费视频| 国内精品国产成人国产三级粉色 | 国产91精品免费| 色婷婷av国产精品| 亚洲精品网站在线播放gif| 麻豆久久久久| 精品一二三四五区| 91热门视频在线观看| 中文字幕在线网址| 色综合导航网站| 国产成人精品免费视| 免费黄频在线观看| 精品动漫一区二区| a√资源在线| 国产精品美女诱惑| 手机精品视频在线观看| 蜜臀久久精品久久久用户群体| 日韩av最新在线观看| 亚洲影视资源| 男人日女人逼逼| 亚洲人被黑人高潮完整版| 熟妇人妻一区二区三区四区| 国产精品亚洲视频在线观看| 国产综合视频| 日韩欧美黄色网址| 精品国产髙清在线看国产毛片| 日韩国产网站| 99在线精品免费视频| 亚洲天堂福利av| 欧美女优在线观看| 成人看片在线| 精品夜夜嗨av一区二区三区| 天天爽夜夜爽夜夜爽精品|