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

千萬級數據查詢:CK、ES、RediSearch 誰才是王炸?

數據庫 其他數據庫
本文從一個業務訴求觸發,對“千萬量級數據中查詢 10W 量級的數據”介紹了不同的設計方案。

在開發中遇到一個業務訴求,需要在千萬量級的底池數據中篩選出不超過 10W 的數據,并根據配置的權重規則進行排序、打散(如同一個類目下的商品數據不能連續出現 3 次)。下面對該業務訴求的實現,設計思路和方案優化進行介紹。

對“千萬量級數據中查詢 10W 量級的數據”設計了如下方案:

  • 多線程+CK 翻頁方案
  • ES scroll scan 深翻頁方案
  • ES+Hbase 組合方案
  • RediSearch+RedisJSON 組合方案

初版設計方案

整體方案設計為:

  • 先根據配置的篩選規則,從底池表中篩選出目標數據
  • 在根據配置的排序規則,對目標數據進行排序,得到結果數據

技術方案如下:

每天運行導數任務,把現有的千萬量級的底池數據(Hive 表)導入到 Clickhouse 中,后續使用 CK 表進行數據篩選。

將業務配置的篩選規則和排序規則,構建為一個篩選 + 排序對象 SelectionQueryCondition。

從 CK 底池表取目標數據時,開啟多線程,進行分頁篩選,將獲取到的目標數據存放到 result 列表中。

//分頁大小  默認 5000
int pageSize = this.getPageSize();
//頁碼數
int pageCnt = totalNum / this.getPageSize() + 1;

List<Map<String, Object>> result = Lists.newArrayList();
List<Future<List<Map<String, Object>>>> futureList = new ArrayList<>(pageCnt);

//開啟多線程調用
for (int i = 1; i <= pageCnt; i++) {
//將業務配置的篩選規則和排序規則 構建為 SelectionQueryCondition 對象
SelectionQueryCondition selectionQueryCondition = buildSelectionQueryCondition(selectionQueryRuleData);
selectionQueryCondition.setPageSize(pageSize);
selectionQueryCondition.setPage(i);
futureList.add(selectionQueryEventPool.submit(new QuerySelectionDataThread(selectionQueryCondition)));
}

for (Future<List<Map<String, Object>>> future : futureList) {
//RPC 調用
List<Map<String, Object>> queryRes = future.get(20, TimeUnit.SECONDS);
if (CollectionUtils.isNotEmpty(queryRes)) {
// 將目標數據存放在 result 中
result.addAll(queryRes);
}
}

④對目標數據 result 進行排序,得到最終的結果數據。

CK 分頁查詢

在初版設計方案章節的第 3 步提到了從 CK 底池表取目標數據時,開啟多線程,進行分頁篩選。此處對 CK 分頁查詢進行介紹。

①封裝了 queryPoolSkuList 方法,負責從 CK 表中獲得目標數據。該方法內部調用了 sqlSession.selectList 方法。

public List<Map<String, Object>> queryPoolSkuList( Map<String, Object> params ) {
List<Map<String, Object>> resultMaps = new ArrayList<>();

QueryCondition queryCondition = parseQueryCondition(params);
List<Map<String, Object>> mapList = lianNuDao.queryPoolSkuList(getCkDt(),queryCondition);
if (CollectionUtils.isNotEmpty(mapList)) {
for (Map<String,Object> data : mapList) {
resultMaps.add(camelKey(data));
}
}
return resultMaps;
}
// lianNuDao.queryPoolSkuList

@Autowired
@Qualifier("ckSqlNewSession")
private SqlSession sqlSession;

public List<Map<String, Object>> queryPoolSkuList( String dt, QueryCondition queryCondition ) {
queryCondition.setDt(dt);
queryCondition.checkMultiQueryItems();
return sqlSession.selectList("LianNu.queryPoolSkuList",queryCondition);
}

②sqlSession.selectList 方法中調用了和 CK 交互的 queryPoolSkuList 查詢方法,部分代碼如下:

<select id="queryPoolSkuList" parameterType="com.jd.bigai.domain.liannu.QueryCondition" resultType="java.util.Map">
select sku_pool_id,i
tem_sku_id,
skuPoolName,
price,
...
...
businessType
from liannu_sku_pool_indicator_all
where
dt=#{dt}
and
<foreach collection="queryItems" separator=" and " item="queryItem" open=" " close=" " >
<choose>
<when test="queryItem.type == 'equal'">
${queryItem.field} = #{queryItem.value}
</when>
...
...
</choose>
</foreach>
<if test="orderBy == null">
group by sku_pool_id,item_sku_id
</if>
<if test="orderBy != null">
group by sku_pool_id,item_sku_id,${orderBy} order by ${orderBy} ${orderAd}
</if>
<if test="limitEnd != 0">
limit #{limitStart},#{limitEnd}
</if>
</select>

③可以看到,在 CK 分頁查詢時,是通過 limit #{limitStart},#{limitEnd} 實現的分頁。

limit 分頁方案,在深翻頁時會存在性能問題。初版方案上線后,在 1000W 量級的底池數據中篩選 10W 的數據,最壞耗時會達到 10s~18s 左右。

使用 ES Scroll Scan 優化深翻頁

對于 CK 深翻頁時候的性能問題,進行了優化,使用 Elasticsearch 的 scroll scan 翻頁方案進行優化。

ES 的翻頁方案

ES 翻頁,有下面幾種方案:

  • from + size 翻頁
  • scroll 翻頁
  • scroll scan 翻頁
  • search after 翻頁

圖片

對上述幾種翻頁方案,查詢不同數目的數據,耗時數據如下表:

圖片

耗時數據

此處,分別使用 Elasticsearch 的 scroll scan 翻頁方案、初版中的 CK 翻頁方案進行數據查詢,對比其耗時數據。

圖片

如上測試數據,可以發現,以十萬,百萬,千萬量級的底池為例:

  • 底池量級越大,查詢相同的數據量,耗時越大
  • 查詢結果 3W 以下時,ES 性能優;查詢結果 5W 以上時,CK 多線程性能優

ES+Hbase 組合查詢方案

在使用 ES Scroll Scan 優化深翻頁中,使用 Elasticsearch 的 scroll scan 翻頁方案對深翻頁問題進行了優化,但在實現時為單線程調用,所以最終測試耗時數據并不是特別理想,和 CK 翻頁方案性能差不多。

在調研階段發現,從底池中取出 10W 的目標數據時,一個商品包含多個字段的信息(CK 表中一行記錄有 150 個字段信息),如價格、會員價、學生價、庫存、好評率等。

對于一行記錄,當減少獲取字段的個數時,查詢耗時會有明顯下降。如對 sku1的商品,從之前獲取價格、會員價、學生價、親友價、庫存等 100 個字段信息,縮減到只獲取價格、庫存這兩個字段信息。

如下圖所示,使用 ES 查詢方案,對查詢同樣條數的場景(從千萬級底池中篩選出 7W+ 條數據),獲取的每條記錄的字段個數從 32 縮減到 17,再縮減到 1個(其實是兩個字段,一個是商品唯一標識 sku_id,另一個是 ES 對每條文檔記錄的 doc_id)時,查詢的耗時會從 9.3s 下降到 4.2s,再下降到 2.4s。

圖片

從中可以得出如下結論:

  • 一次 ES 查詢中,若查詢字段和信息較多,fetch 階段的耗時,遠大于 query 階段的耗時。
  • 一次 ES 查詢中,若查詢字段和信息較多,通過減少不必要的查詢字段,可以顯著縮短查詢耗時。

下面對結論中涉及的 query 和 fetch 查詢階段進行補充說明。

ES 查詢的兩個階段

在 ES 中,搜索一般包括兩個階段:

  • query 階段:根據查詢條件,確定要取哪些文檔(doc),篩選出文檔 ID(doc_id)
  • fetch 階段:根據 query 階段返回的文檔 ID(doc_id),取出具體的文檔(doc)

組合使用 Hbase

減少不必要的查詢展示字段可以明顯縮短查詢耗時。

沿著這個優化思路,設計了一種新的查詢方案:

  • ES 僅用于條件篩選,ES 的查詢結果僅包含記錄的唯一標識 sku_id(其實還包含 ES 為每條文檔記錄的 doc_id)
  • Hbase 是列存儲數據庫,每列數據有一個 rowKey。利用 rowKey 篩選一條記錄時,復雜度為 O(1)。(類似于從 HashMap 中根據 key 取 value)
  • 根據 ES 查詢返回的唯一標識 sku_id,作為 Hbase 查詢中的 rowKey,在 O(1) 復雜度下獲取其他信息字段,如價格,庫存等

圖片

使用 ES + Hbase 組合查詢方案,在線上進行了小規模的灰度測試。在 1000W 量級的底池數據中篩選 10W 的數據,對比 CK 翻頁方案,最壞耗時從 10~18s 優化到了 3~6s 左右。

也應該看到,使用 ES + Hbase 組合查詢方案,會增加系統復雜度,同時數據也需要同時存儲到 ES 和 Hbase。

RediSearch+RedisJSON 優化方案

RediSearch 是基于 Redis 構建的分布式全文搜索和聚合引擎,能以極快的速度在 Redis 數據集上執行復雜的搜索查詢。

RedisJSON 是一個 Redis 模塊,在 Redis 中提供 JSON 支持。RedisJSON 可以和 RediSearch 無縫配合,實現索引和查詢 JSON 文檔。

根據一些參考資料,RediSearch + RedisJSON 可以實現極高的性能,可謂碾壓其他 NoSQL 方案。在后續版本迭代中,可考慮使用該方案來進一步優化。

下面給出 RediSearch + RedisJSON 的部分性能數據。

RediSearch 性能數據

在同等服務器配置下索引了 560 萬個文檔 (5.3GB),RediSearch 構建索引的時間為 221 秒,而 Elasticsearch 為 349 秒。RediSearch 比 ES 快了 58%。

圖片

數據建立索引后,使用 32 個客戶端對兩個單詞進行檢索,RediSearch 的吞吐量達到 12.5K ops/sec,ES 的吞吐量為 3.1K ops/sec,RediSearch 比 ES 要快 4 倍。

同時,RediSearch 的延遲為 8ms,而 ES 為 10ms,RediSearch 延遲稍微低些。

RedisJSON 性能數據

根據官網的性能測試報告,RedisJson + RedisSearch 可謂碾壓其他 NoSQL:

  • 對于隔離寫入(isolated writes),RedisJSON 比 MongoDB 快 5.4 倍,比 ES 快 200 倍以上
  • 對于隔離讀取(isolated reads),RedisJSON 比 MongoDB 快 12.7 倍,比 ES 快 500 倍以上

在混合工作負載場景中,實時更新不會影響 RedisJSON 的搜索和讀取性能,而 ES 會受到影響:

  • RedisJSON 支持的操作數/秒比 MongoDB 高約 50 倍,比 ES 高 7 倍/秒
  • RedisJSON 的延遲比 MongoDB 低約 90 倍,比 ES 低 23.7 倍

此外,RedisJSON 的讀取、寫入和負載搜索延遲,在更高的百分位數中遠比 ES 和 MongoDB 穩定。

當增加寫入比率時,RedisJSON 還能處理越來越高的整體吞吐量。而當寫入比率增加時,ES 會降低它可以處理的整體吞吐量。

總結

本文從一個業務訴求觸發,對“千萬量級數據中查詢 10W 量級的數據”介紹了不同的設計方案。

對于在 1000W 量級的底池數據中篩選 10W 的數據的場景,不同方案的耗時如下:

  • 多線程+CK 翻頁方案,最壞耗時為 10s~18s
  • 單線程+ES scroll scan 深翻頁方案,相比 CK 方案,并未見到明顯優化
  • ES+Hbase 組合方案,最壞耗時優化到了 3s~6s
  • RediSearch+RedisJSON 組合方案,后續會實測該方案的耗時
責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2022-09-08 09:35:22

數據查詢

2024-10-21 17:51:25

2023-02-24 16:37:04

MySQL數據查詢數據庫

2021-01-07 07:46:34

MyBatis 數據量JDBC

2024-03-29 08:56:47

2025-10-27 02:15:00

2023-05-06 08:23:36

ChatGPT自然語言技術

2020-06-17 12:36:45

查詢數據Python

2018-07-11 20:07:06

數據庫MySQL索引優化

2019-05-28 09:31:05

Elasticsear億級數據ES

2022-09-15 11:56:36

Javalua開發

2019-11-27 09:48:04

數據ESHBase

2019-05-27 09:56:00

數據庫高可用架構

2018-01-10 09:33:18

數據庫SQL查詢優化Java Web

2020-08-20 14:49:22

數據查詢數據庫

2022-07-05 21:31:21

索引SQL分庫分表

2013-09-08 22:40:38

EF Code Fir數據查詢架構設計

2015-04-07 13:40:00

大數據大數據安全現狀

2021-02-22 10:54:28

AI 數據人工智能

2017-08-17 17:39:18

人工智能數據網絡安全
點贊
收藏

51CTO技術棧公眾號

国产精品麻豆久久| 亚州欧美在线| 久久久久国产成人精品亚洲午夜| 国产精品91免费在线| 亚洲精品国产精品国自| 国产一区二区三区亚洲综合| 亚洲成人一区在线| 欧美高清一区二区| 国产精品老熟女视频一区二区| 一区二区不卡| 精品五月天久久| 日本不卡一区在线| 国产在线88av| 中文字幕中文字幕一区二区 | 在线观看日本网站| 99久久综合| 日韩毛片在线观看| 国产精品探花在线播放| 欧美aa视频| 一区二区三区欧美视频| 欧洲一区二区日韩在线视频观看免费 | 91av在线免费| 一区二区三区| 色网综合在线观看| 日本欧美视频在线观看| 色综合久久影院| 久久免费看少妇高潮| 亚洲japanese制服美女| 国产成人精品777777| 欧美三级网页| 在线亚洲欧美视频| theav精尽人亡av| 日日夜夜精品视频| 欧美电影在线免费观看| 日韩毛片在线免费看| 女同视频在线观看| |精品福利一区二区三区| 免费看污久久久| 日韩中文字幕免费观看| 国产麻豆一精品一av一免费 | 一本色道久久88精品综合| 一边摸一边做爽的视频17国产 | 欧美精品三级日韩久久| aa在线免费观看| 成人福利影视| 亚洲综合区在线| 日韩欧美一级在线| 国产人成网在线播放va免费| 亚洲国产精品v| 欧美黄色直播| 欧美成熟毛茸茸| 久久日一线二线三线suv| 精品国产免费久久久久久尖叫 | 中文字幕乱码免费| 永久免费av片在线观看全网站| 久久精品夜色噜噜亚洲aⅴ| 久久国产精品亚洲va麻豆| 懂色av一区二区三区四区| 国产精品456露脸| 亚洲最大的免费| av小说天堂网| 福利一区二区在线观看| 国产高清精品一区| 色屁屁草草影院ccyycom| 国产成人午夜精品影院观看视频 | 精品女同一区二区三区| 国产美女精品在线| 666精品在线| 精品国产18久久久久久| 国产精品影音先锋| 波多野结衣成人在线| 亚洲av无码一区二区三区性色| 国产精品一区久久久久| 成人羞羞视频免费| 欧美 日韩 人妻 高清 中文| thepron国产精品| 欧美一区二区在线| 日本福利在线| 一区二区成人在线视频| www..com日韩| 午夜激情成人网| 在线不卡a资源高清| gogo亚洲国模私拍人体| 精品国产导航| 国产亚洲欧洲高清| 免费中文字幕在线观看| 国产美女精品| 国产欧美va欧美va香蕉在线| 精品人妻一区二区三区三区四区| 不卡在线观看av| 日韩电影大全在线观看| 成人a在线视频免费观看| 亚洲成a人片在线观看中文| 日韩精品一区二区三区不卡 | 亚洲一区观看| 国产精品入口免费视| 不卡av中文字幕| 久久综合国产精品| 性生活免费观看视频| 激情黄产视频在线免费观看| 欧美在线色视频| 久草视频福利在线| 色琪琪久久se色| 韩国欧美亚洲国产| 中文字幕资源网| 成人h动漫精品| 一区二区三区四区免费视频| av中文字幕在线看| 欧美三级韩国三级日本三斤| 尤物网站在线观看| 国产精品久久久久久久久久10秀| 97久久久久久| 国产模特av私拍大尺度| 久久这里只有精品视频网| 最新不卡av| 亚洲www免费| 精品日本一线二线三线不卡| 国产欧美小视频| 夜夜嗨一区二区| 91精品天堂| 中文字幕在线视频区| 欧美日韩精品二区| 亚洲欧洲日韩综合| 99久久精品费精品国产| 国产不卡视频在线| 人妻无码中文字幕免费视频蜜桃| 综合欧美亚洲日本| 亚洲精品久久久中文字幕| 亚洲成人一品| 韩国19禁主播vip福利视频| av片免费播放| 亚洲欧美日韩小说| 中文字幕在线综合| 国产一区二区在线| 欧美在线观看网址综合| 成人免费视频国产| 一区二区三区欧美日韩| 亚洲国产综合av| 久久精品亚洲人成影院 | 国产精品欧美大片| 欧美成人在线免费| 国产女人高潮毛片| 亚洲欧美一区二区在线观看| 天天综合网久久| 欧美丰满日韩| 成人国产在线视频| 欧美私人网站| 5月丁香婷婷综合| chinese全程对白| 久久精品国产99| 一区二区三区视频| 精品国产第一国产综合精品| 久久精品精品电影网| 国产又大又长又粗| 国产精品久久久久精k8| 伊人成人222| 一区二区三区国产精华| 99r国产精品视频| 日本色护士高潮视频在线观看| 久久久久国色av免费看影院| 97精品国产97久久久久久| www.日本在线观看| 亚洲夂夂婷婷色拍ww47| 亚洲精品乱码久久久久久蜜桃欧美| 欧美视频官网| 国内视频一区| 亚洲天堂av影院| 亚洲精品视频在线播放| 人人草在线观看| 日本一区二区三区视频视频| 亚洲人精品午夜在线观看| 天天爽夜夜爽一区二区三区| 成人av国产| 91久久国产综合久久91精品网站| 18网站在线观看| 精品国产网站在线观看| 日本一二三区不卡| 国产午夜一区二区三区| 一级做a免费视频| 91精品在线观看国产| 不卡一区二区三区四区五区| 久草在线中文最新视频| 亚洲深夜福利视频| 国产露脸国语对白在线| 亚洲国产精品影院| 成人免费无遮挡无码黄漫视频| 青青草成人在线观看| 伊人再见免费在线观看高清版| 在线播放一区二区精品视频| 欧美亚洲视频一区二区| 一本一道波多野毛片中文在线| 欧美一级免费大片| 亚洲熟女综合色一区二区三区| 国产精品免费免费| 久久人妻少妇嫩草av蜜桃| 午夜亚洲一区| 国内外成人激情免费视频| 美女视频亚洲色图| 成人精品视频99在线观看免费 | www.国产一区| 神宫寺奈绪一区二区三区| 欧美日韩在线直播| 日韩特黄一级片| 中文字幕在线播放不卡一区| 污污内射在线观看一区二区少妇| 久久99精品久久久久久久久久久久| 成人免费网站入口| 日韩一区二区在线| 精品欧美一区二区在线观看视频 | 欧美成人女星排名| 日韩欧美在线观看免费| 亚洲午夜久久久久久久久电影网 | 免费av一级片| 欧美另类久久久品| 在线免费观看av网址| 亚洲影院理伦片| 五月天免费网站| 日韩有码第一页| 亚洲综合视频在线| 日本黄区免费视频观看| 99免费精品在线| 亚洲成人教育av| 能直接看的av| 26uuu色噜噜精品一区| 国产亚洲色婷婷久久| 日韩电影在线观看电影| 日韩在线一级片| 韩日成人av| 欧美另类videos| 成人激情在线| 欧美在线视频二区| 色老板在线视频一区二区| av日韩免费电影| 91九色成人| 国产欧美久久久久久| 九九热线视频只有这里最精品| 欧美激情a∨在线视频播放| 久热国产在线| 精品国产一区二区三区久久久| 国产高清视频在线| 亚洲偷熟乱区亚洲香蕉av| 全色精品综合影院| 国产丝袜一区二区| 三级在线电影| 日韩精品一区二区视频| 天天操天天插天天射| 亚洲大胆人体视频| 人妻无码中文字幕| 日韩av在线免费观看一区| 手机看片1024国产| 亚洲精品98久久久久久中文字幕| 你懂的网站在线| 亚洲精品久久在线| 深夜影院在线观看| 亚洲精品黄网在线观看| 瑟瑟在线观看| 亚洲天堂男人天堂女人天堂| 国产三级视频在线| 色综久久综合桃花网| 免费人成在线观看播放视频| 日日噜噜噜夜夜爽亚洲精品 | 亚洲va欧美va人人爽成人影院| 91在线免费网站| 97久久超碰| 国内一区在线| 九九综合在线| 一本一道久久久a久久久精品91| 久久在线视频免费观看| 影音先锋成人资源网站| 亚洲激情黄色| 久久九九国产视频| 久久精品国产免费| 深夜视频在线观看| 91免费观看视频在线| 日本黄色小视频在线观看| 亚洲丝袜美腿综合| 日韩 欧美 亚洲| 欧洲视频一区二区| 国产乱淫片视频| 日韩欧美黄色影院| 日韩在线免费看| 日韩网站在线观看| 免费在线看污片| 奇米影视亚洲狠狠色| 国产精品蜜月aⅴ在线| 97免费资源站| 免费观看不卡av| 成人在线观看www| 国产精品久久久久久久免费软件 | 狠狠躁夜夜躁人人爽天天高潮| 日本韩国一区二区三区视频| 国产女无套免费视频| 日韩激情视频在线| 日本中文字幕在线观看| 欧美高清在线视频观看不卡| 欧美7777| 丁香婷婷久久久综合精品国产| 老汉色老汉首页av亚洲| 亚洲福利av| 亚洲精品韩国| 国产精品v日韩精品v在线观看| 成人少妇影院yyyy| 午夜黄色福利视频| 欧美日韩国产一中文字不卡| 国产又粗又猛又爽又黄的视频一 | 亚洲人成免费| 鲁一鲁一鲁一鲁一av| 99久久婷婷国产精品综合| 国产jizz18女人高潮| 精品欧美激情精品一区| 国产人妖一区二区三区| 亚洲天堂av在线免费观看| 暖暖在线中文免费日本| 国产日韩视频在线观看| 欧美亚洲国产日韩| 日韩一二区视频| 久久99精品国产| 欧美人与性囗牲恔配| 天涯成人国产亚洲精品一区av| 国产女人高潮的av毛片| 在线视频欧美日韩| 色尼玛亚洲综合影院| 国产欧美日韩亚洲| 欧美国产三区| 色噜噜狠狠一区二区三区狼国成人| 91蜜桃免费观看视频| 久久久久成人网站| 日韩一区二区在线观看视频| 91在线免费看| 国产精品久久久| 国产精品嫩模av在线| 国产黄色一级网站| 成人动漫一区二区| 国产精品第九页| 亚洲成人性视频| 福利在线导航136| 国产精品国产亚洲精品看不卡15| **女人18毛片一区二区| 午夜久久福利视频| 中文字幕日本不卡| 91成品人影院| 综合激情国产一区| 成人亚洲免费| 亚洲精品一品区二品区三品区 | 亚洲二区在线视频| 成人av无码一区二区三区| 久久国产精品久久久久| 精品国产一区二区三区性色av| 在线视频91| 精品一区二区免费视频| 小早川怜子一区二区的演员表| 欧美三级视频在线| 日本精品在线| 亚洲xxxx视频| 狠狠88综合久久久久综合网| 人妻 日韩 欧美 综合 制服| 亚洲电影一区二区| 日本又骚又刺激的视频在线观看| 欧美专区中文字幕| 国产毛片一区二区三区| 亚洲国产精品三区| 中文字幕一区二区在线播放| 国产精品久久久午夜夜伦鲁鲁| 久久天天躁狠狠躁夜夜爽蜜月| 欧美一区一区| 欧美视频免费看欧美视频| 26uuu成人网一区二区三区| 91porny九色| 久久精品国产亚洲精品| 超碰在线亚洲| aⅴ在线免费观看| 日本一区二区综合亚洲| 国产日本精品视频| 国内精品久久久久久久久| 中国av一区| www,av在线| 亚洲午夜国产一区99re久久| 亚洲欧洲成人在线| 国产精品亚洲第一区| 欧美午夜不卡影院在线观看完整版免费 | 亚洲v.com| 亚洲成人网上| 国产超碰在线一区| 亚洲日本韩国在线| 最近2019中文免费高清视频观看www99| 在线成人免费| 无码人妻丰满熟妇区96| 中文字幕亚洲不卡| 色欲av伊人久久大香线蕉影院| 国产91在线播放九色快色| 天天做天天爱天天综合网2021| 东京热av一区| 欧美视频一区二区在线观看| 91麻豆一二三四在线| 久久一区二区精品| 国产一区二区三区精品欧美日韩一区二区三区 | 国产91av在线| 综合国产在线| a级片在线观看| 日韩欧美在线1卡|