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

100000行級別數(shù)據(jù)的 Excel 導入優(yōu)化之路

數(shù)據(jù)庫 其他數(shù)據(jù)庫
在優(yōu)化的過程中,我還發(fā)現(xiàn)了一個特別影響性能的東西:info 日志,還是使用 41w行、25列、45.5m 數(shù)據(jù),在 開始-數(shù)據(jù)讀取完畢 之間每 1000 行打印一條 info 日志,緩存校驗數(shù)據(jù)-校驗完畢 之間每行打印 3+ 條 info 日志,日志框架使用 Slf4j 。打印并持久化到磁盤。

今天分享一篇大數(shù)據(jù)量Excel導入如何優(yōu)化的文章,非常不錯。

需求說明

項目中有一個 Excel 導入的需求:繳費記錄導入。

由實施 / 用戶 將別的系統(tǒng)的數(shù)據(jù)填入我們系統(tǒng)中的 Excel 模板,應用將文件內(nèi)容讀取、校對、轉換之后產(chǎn)生欠費數(shù)據(jù)、票據(jù)、票據(jù)詳情并存儲到數(shù)據(jù)庫中。

在接手之前可能由于之前導入的數(shù)據(jù)量并不多沒有對效率有過高的追求。但是到了 4.0 版本,預估導入時Excel 行數(shù)會是 10w+ 級別,而往數(shù)據(jù)庫插入的數(shù)據(jù)量是大于 3n 的,也就是說 10w 行的 Excel,則至少向數(shù)據(jù)庫插入 30w 行數(shù)據(jù)。因此優(yōu)化原來的導入代碼是勢在必行的。逐步分析和優(yōu)化了導入的代碼,使之在百秒內(nèi)完成(最終性能瓶頸在數(shù)據(jù)庫的處理速度上,測試服務器 4g 內(nèi)存不僅放了數(shù)據(jù)庫,還放了很多微服務應用。處理能力不太行)。具體的過程如下,每一步都有列出影響性能的問題和解決的辦法。

導入 Excel 的需求在系統(tǒng)中還是很常見的,優(yōu)化辦法可能不是最優(yōu)的,歡迎讀者在評論區(qū)留言交流提供更優(yōu)的思路。

一些細節(jié)

  • 數(shù)據(jù)導入:導入使用的模板由系統(tǒng)提供,格式是 xlsx (支持 65535+行數(shù)據(jù)) ,用戶按照表頭在對應列寫入相應的數(shù)據(jù)。
  • 數(shù)據(jù)校驗:數(shù)據(jù)校驗有兩種:

字段長度、字段正則表達式校驗等,內(nèi)存內(nèi)校驗不存在外部數(shù)據(jù)交互。對性能影響較小。

數(shù)據(jù)重復性校驗,如票據(jù)號是否和系統(tǒng)已存在的票據(jù)號重復(需要查詢數(shù)據(jù)庫,十分影響性能)。

  • 數(shù)據(jù)插入:測試環(huán)境數(shù)據(jù)庫使用 MySQL 5.7,未分庫分表,連接池使用 Druid。

迭代記錄

1. 第一版:POI + 逐行查詢校對 + 逐行插入

這個版本是最古老的版本,采用原生 POI,手動將 Excel 中的行映射成 ArrayList 對象,然后存儲到 List,代碼執(zhí)行的步驟如下:

  • 手動讀取 Excel 成 List
  • 循環(huán)遍歷,在循環(huán)中進行以下步驟

檢驗字段長度。

一些查詢數(shù)據(jù)庫的校驗,比如校驗當前行欠費對應的房屋是否在系統(tǒng)中存在,需要查詢房屋表。

寫入當前行數(shù)據(jù)

  • 返回執(zhí)行結果,如果出錯 / 校驗不合格。則返回提示信息并回滾數(shù)據(jù)
  • 顯而易見的,這樣實現(xiàn)一定是趕工趕出來的,后續(xù)可能用的少也沒有察覺到性能問題,但是它最多適用于個位數(shù)/十位數(shù)級別的數(shù)據(jù)。存在以下明顯的問題:
  • 查詢數(shù)據(jù)庫的校驗對每一行數(shù)據(jù)都要查詢一次數(shù)據(jù)庫,應用訪問數(shù)據(jù)庫來回的網(wǎng)絡IO次數(shù)被放大了 n 倍,時間也就放大了 n 倍。
  • 寫入數(shù)據(jù)也是逐行寫入的,問題和上面的一樣。

數(shù)據(jù)讀取使用原生 POI,代碼十分冗余,可維護性差。

2. 第二版:EasyPOI + 緩存數(shù)據(jù)庫查詢操作 + 批量插入

針對第一版分析的三個問題,分別采用以下三個方法優(yōu)化。

緩存數(shù)據(jù),以空間換時間

逐行查詢數(shù)據(jù)庫校驗的時間成本主要在來回的網(wǎng)絡IO中,優(yōu)化方法也很簡單。將參加校驗的數(shù)據(jù)全部緩存到 HashMap 中。直接到 HashMap 去命中。

例如:校驗行中的房屋是否存在,原本是要用 區(qū)域 + 樓宇 + 單元 + 房號 去查詢房屋表匹配房屋ID,查到則校驗通過,生成的欠單中存儲房屋ID,校驗不通過則返回錯誤信息給用戶。而房屋信息在導入欠費的時候是不會更新的。并且一個小區(qū)的房屋信息也不會很多(5000以內(nèi))因此我采用一條SQL,將該小區(qū)下所有的房屋以 區(qū)域/樓宇/單元/房號 作為 key,以 房屋ID 作為 value,存儲到 HashMap 中,后續(xù)校驗只需要在 HashMap 中命中。

自定義 SessionMapper

Mybatis 原生是不支持將查詢到的結果直接寫人一個 HashMap 中的,需要自定義 SessionMapper。

SessionMapper 中指定使用 MapResultHandler 處理 SQL 查詢的結果集。

@Repository
public class SessionMapper extends SqlSessionDaoSupport {

@Resource
public void setSqlSessionFactory(SqlSessionFactory sqlSessionFactory) {
super.setSqlSessionFactory(sqlSessionFactory);
}

// 區(qū)域樓宇單元房號 - 房屋ID
@SuppressWarnings("unchecked")
public Map<String, Long> getHouseMapByAreaId(Long areaId) {
MapResultHandler handler = new MapResultHandler();

this.getSqlSession().select(BaseUnitMapper.class.getName()+".getHouseMapByAreaId", areaId, handler);
Map<String, Long> map = handler.getMappedResults();
return map;
}
}

MapResultHandler 處理程序,將結果集放入 HashMap。

public class MapResultHandler implements ResultHandler {
private final Map mappedResults = new HashMap();

@Override
public void handleResult(ResultContext context) {
@SuppressWarnings("rawtypes")
Map map = (Map)context.getResultObject();
mappedResults.put(map.get("key"), map.get("value"));
}

public Map getMappedResults() {
return mappedResults;
}
}

示例 Mapper。

@Mapper
@Repository
public interface BaseUnitMapper {
// 收費標準綁定 區(qū)域樓宇單元房號 - 房屋ID
Map<String, Long> getHouseMapByAreaId(@Param("areaId") Long areaId);
}

示例 Mapper.xml

<select id="getHouseMapByAreaId" resultMap="mapResultLong">
SELECT
CONCAT( h.bulid_area_name, h.build_name, h.unit_name, h.house_num ) k,
h.house_id v
FROM
base_house h
WHERE
h.area_id = ##{areaId}
GROUP BY
h.house_id
</select>

<resultMap id="mapResultLong" type="java.util.HashMap">
<result property="key" column="k" javaType="string" jdbcType="VARCHAR"/>
<result property="value" column="v" javaType="long" jdbcType="INTEGER"/>
</resultMap>

之后在代碼中調(diào)用 SessionMapper 類對應的方法即可。

使用 values 批量插入

MySQL insert 語句支持使用 values (),(),() 的方式一次插入多行數(shù)據(jù),通過 mybatis foreach 結合 java 集合可以實現(xiàn)批量插入,代碼寫法如下:

<insert id="insertList">
insert into table(colom1, colom2)
values
<foreach collection="list" item="item" index="index" separator=",">
( ##{item.colom1}, ##{item.colom2})
</foreach>
</insert>

使用 EasyPOI 讀寫 Excel

http://doc.wupaas.com/docs/easypoi/easypoi-1c0u4mo8p4ro8 采用基于注解的導入導出,修改注解就可以修改Excel,非常方便,代碼維護起來也容易。

3. 第三版:EasyExcel + 緩存數(shù)據(jù)庫查詢操作 + 批量插入

第二版采用 EasyPOI 之后,對于幾千、幾萬的 Excel 數(shù)據(jù)已經(jīng)可以輕松導入了,不過耗時有點久(5W 數(shù)據(jù) 10分鐘左右寫入到數(shù)據(jù)庫)不過由于后來導入的操作基本都是開發(fā)在一邊看日志一邊導入,也就沒有進一步優(yōu)化。但是好景不長,有新小區(qū)需要遷入,票據(jù) Excel 有 41w 行,這個時候使用 EasyPOI 在開發(fā)環(huán)境跑直接就 OOM 了,增大 JVM 內(nèi)存參數(shù)之后,雖然不 OOM 了,但是 CPU 占用 100% 20 分鐘仍然未能成功讀取全部數(shù)據(jù)。故在讀取大 Excel 時需要再優(yōu)化速度。莫非要我這個渣渣去深入 POI 優(yōu)化了嗎?別慌,先上 GITHUB 找找別的開源項目。這時阿里 EasyExcel 映入眼簾:

圖片

emmm,這不是為我量身定制的嗎!趕緊拿來試試。EasyExcel 采用和 EasyPOI 類似的注解方式讀寫 Excel,因此從 EasyPOI 切換過來很方便,分分鐘就搞定了。也確實如阿里大神描述的:41w行、25列、45.5m 數(shù)據(jù)讀取平均耗時 50s,因此對于大 Excel 建議使用 EasyExcel 讀取。

4. 第四版:優(yōu)化數(shù)據(jù)插入速度

在第二版插入的時候,我使用了 values 批量插入代替逐行插入。每 30000 行拼接一個長 SQL、順序插入。整個導入方法這塊耗時最多,非常拉跨。后來我將每次拼接的行數(shù)減少到 10000、5000、3000、1000、500 發(fā)現(xiàn)執(zhí)行最快的是 1000。結合網(wǎng)上一些對 innodb_buffer_pool_size 描述我猜是因為過長的 SQL 在寫操作的時候由于超過內(nèi)存閾值,發(fā)生了磁盤交換。關注公號:碼猿技術專欄,回復關鍵詞:1111 獲取阿里內(nèi)部Java調(diào)優(yōu)手冊;限制了速度,另外測試服務器的數(shù)據(jù)庫性能也不怎么樣,過多的插入他也處理不過來。所以最終采用每次 1000 條插入。

每次 1000 條插入后,為了榨干數(shù)據(jù)庫的 CPU,那么網(wǎng)絡IO的等待時間就需要利用起來,這個需要多線程來解決,而最簡單的多線程可以使用 并行流 來實現(xiàn),接著我將代碼用并行流來測試了一下:

10w行的 excel、42w 欠單、42w記錄詳情、2w記錄、16 線程并行插入數(shù)據(jù)庫、每次 1000 行。插入時間 72s,導入總時間 95 s。

圖片

并行插入工具類

并行插入的代碼我封裝了一個函數(shù)式編程的工具類,也提供給大家

/**
* 功能:利用并行流快速插入數(shù)據(jù)
*
* @author Keats
* @date 2020/7/1 9:25
*/
public class InsertConsumer {
/**
* 每個長 SQL 插入的行數(shù),可以根據(jù)數(shù)據(jù)庫性能調(diào)整
*/
private final static int SIZE = 1000;

/**
* 如果需要調(diào)整并發(fā)數(shù)目,修改下面方法的第二個參數(shù)即可
*/
static {
System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "4");
}

/**
* 插入方法
*
* @param list 插入數(shù)據(jù)集合
* @param consumer 消費型方法,直接使用 mapper::method 方法引用的方式
* @param <T> 插入的數(shù)據(jù)類型
*/
public static <T> void insertData(List<T> list, Consumer<List<T>> consumer) {
if (list == null || list.size() < 1) {
return;
}

List<List<T>> streamList = new ArrayList<>();

for (int i = 0; i < list.size(); i += SIZE) {
int j = Math.min((i + SIZE), list.size());
List<T> subList = list.subList(i, j);
streamList.add(subList);
}
// 并行流使用的并發(fā)數(shù)是 CPU 核心數(shù),不能局部更改。全局更改影響較大,斟酌
streamList.parallelStream().forEach(consumer);
}
}

這里多數(shù)使用到很多 Java8 的API,不了解的朋友可以翻看我之前關于 Java 的博客。方法使用起來很簡單

InsertConsumer.insertData(feeList, arrearageMapper::insertList);

其他影響性能的內(nèi)容

日志

避免在 for 循環(huán)中打印過多的 info 日志

在優(yōu)化的過程中,我還發(fā)現(xiàn)了一個特別影響性能的東西:info 日志,還是使用 41w行、25列、45.5m 數(shù)據(jù),在 開始-數(shù)據(jù)讀取完畢 之間每 1000 行打印一條 info 日志,緩存校驗數(shù)據(jù)-校驗完畢 之間每行打印 3+ 條 info 日志,日志框架使用 Slf4j 。打印并持久化到磁盤。下面是打印日志和不打印日志效率的差別:

打印日志

圖片

不打印日志

圖片

我以為是我選錯 Excel 文件了,又重新選了一次,結果依舊

圖片

緩存校驗數(shù)據(jù)-校驗完畢 不打印日志耗時僅僅是打印日志耗時的 1/10 !

總結

提升Excel導入速度的方法:

  • 使用更快的 Excel 讀取框架(推薦使用阿里 EasyExcel)。
  • 對于需要與數(shù)據(jù)庫交互的校驗、按照業(yè)務邏輯適當?shù)氖褂镁彺妗S每臻g換時間。
  • 使用 values(),(),() 拼接長 SQL 一次插入多行數(shù)據(jù)。
  • 使用多線程插入數(shù)據(jù),利用掉網(wǎng)絡IO等待時間(推薦使用并行流,簡單易用)。
  • 避免在循環(huán)中打印無用的日志。
責任編輯:武曉燕 來源: 碼猿技術專欄
相關推薦

2024-02-05 13:28:00

Excel優(yōu)化服務器

2023-06-29 08:22:43

數(shù)據(jù)Excel模板

2012-04-25 09:24:17

Java

2020-08-06 08:00:51

數(shù)據(jù)分頁優(yōu)化

2020-09-01 17:19:36

數(shù)據(jù)監(jiān)控建模

2023-12-07 07:46:21

MySQL寫入點LSN

2020-12-18 10:40:00

ExcelJava代碼

2010-04-14 09:24:29

在Oracle數(shù)據(jù)庫

2024-11-08 09:34:54

2025-10-28 01:55:00

2019-05-22 15:57:11

面試ES性能數(shù)據(jù)

2016-05-23 13:50:23

UberHadoopSpark

2022-05-11 09:02:27

Python數(shù)據(jù)庫Excel

2013-02-27 15:48:05

自動化備份FacebookPB級別數(shù)據(jù)庫

2012-08-06 14:02:09

萬國數(shù)據(jù)數(shù)據(jù)中心GDS

2010-08-23 16:55:53

SharePoint

2011-03-10 10:50:01

excelsql數(shù)據(jù)庫

2020-07-08 13:46:25

Python數(shù)據(jù)分析預處理

2011-07-12 13:01:11

ExcelOracleSql Server

2020-10-06 18:57:14

PostgreSQL數(shù)據(jù)庫數(shù)據(jù)導入
點贊
收藏

51CTO技術棧公眾號

成年人在线观看网站| 亚洲永久无码7777kkk| 欧美高清视频| 国产成人免费视频| 欧美性在线视频| 在哪里可以看毛片| 91成人短视频在线观看| 亚洲成人福利片| 日韩精品最新在线观看| 精品人妻av一区二区三区| 在线精品观看| 亚洲精品视频网上网址在线观看| 色乱码一区二区三区在线| 日本在线免费| 91免费看视频| 亚洲精品免费av| 精产国品一区二区| 亚洲乱码在线| 亚洲色图欧美制服丝袜另类第一页 | 国产普通话bbwbbwbbw| 日韩一级精品| 久久国产天堂福利天堂| 永久免费成人代码| 国产厕拍一区| 欧美一区二区国产| 欧美日韩在线免费播放| 1024在线看片你懂得| 国产精品久久久99| 欧美日韩在线一区二区三区| 国产按摩一区二区三区| 奇米影视在线99精品| 97在线视频国产| 欧美卡一卡二卡三| 久久看人人摘| 中文字幕亚洲色图| 精品无码在线视频| 欧美精品一区二区三区视频| 欧美久久婷婷综合色| av久久久久久| 天堂地址在线www| 国产欧美一区二区精品性色| 国内一区在线| 成人h动漫精品一区二区无码| 美女看a上一区| 国产精品成人av性教育| 国产原创视频在线| 99视频在线精品国自产拍免费观看| 麻豆国产va免费精品高清在线| 夜夜春很很躁夜夜躁| 亚洲三级网址| 日韩精品亚洲精品| 好男人香蕉影院| 国偷自产视频一区二区久| 精品久久五月天| 乱码一区二区三区| 欧美区一区二区| 日韩欧美高清在线| 亚洲成人精品| 精品在线亚洲视频| 国产精品1234| 欧美h在线观看| 国产精品久久久久毛片大屁完整版| 久久久久久久国产精品视频| 青娱乐国产在线视频| 欧美在线视屏| 欧美伦理91i| 国产亚洲精品久久777777| 午夜日韩在线| 性日韩欧美在线视频| 久久狠狠高潮亚洲精品| 性娇小13――14欧美| 国产成人精品一区二区| 成人免费一区二区三区| 麻豆成人91精品二区三区| 成人免费视频网址| 亚洲国产精品久久久久爰性色| 不卡的看片网站| 欧美激情第一页在线观看| 都市激情在线视频| 中文字幕在线视频一区| 亚洲精品国产suv一区88| av手机在线观看| 一本色道久久综合亚洲91| 亚洲精品一二三四五区| 香蕉久久一区| 亚洲高清久久网| 国产又粗又猛又爽又黄av | 国产亚洲激情| 国产精品久久久久高潮| www.我爱av| 2023国产一二三区日本精品2022| 日韩美女一区| 日韩电影免费观看| 色婷婷狠狠综合| 波多野结衣中文字幕在线播放| 农村少妇一区二区三区四区五区| 亚洲情综合五月天| 69av视频在线| 丝袜美腿亚洲一区| 147欧美人体大胆444| 牛牛澡牛牛爽一区二区| 亚洲情趣在线观看| 漂亮人妻被中出中文字幕| 国产精品一级在线观看| 日韩经典中文字幕在线观看| 国产jizz18女人高潮| 亚洲日本激情| 成人性生交xxxxx网站| 亚洲日本在线播放| 国产麻豆一区二区三区精品视频| 精品久久久国产| 日本在线观看免费视频| 中文在线免费一区三区| 亚洲偷熟乱区亚洲香蕉av| 国产精品三区在线观看| 首页亚洲欧美制服丝腿| 国产传媒一区二区| 日本在线视频观看| 色婷婷精品久久二区二区蜜臀av| 在线观看网站黄| 精品美女久久| 91大神福利视频在线| 国产婷婷在线视频| 亚洲国产精品t66y| 国产无套内射久久久国产| 我要色综合中文字幕| 日韩一区视频在线| 欧美日韩a v| 久久中文娱乐网| 九一国产精品视频| 综合激情网...| 久久影视电视剧免费网站| 久久这里只有精品9| 久久视频一区二区| 国产婷婷一区二区三区| 91精品入口| 欧美激情极品视频| 精品人妻av一区二区三区| 中文字幕在线观看不卡视频| 在线视频日韩一区| 国产乱码精品一区二区亚洲| 欧美一级在线播放| 色中色在线视频| 欧美日韩精品在线播放| 久久一区二区电影| a91a精品视频在线观看| 国产一区二区三区高清视频| 欧美偷拍综合| 黄色成人在线免费| 国产成人精品一区二区三区在线观看| 日本一二区不卡| 国产精品美女在线观看| www.黄在线观看| 欧美视频第二页| 国产精品视频在| 久久精品国产精品亚洲综合| 亚洲一区二区三区欧美| 欧洲精品久久久久毛片完整版| 中文字幕无线精品亚洲乱码一区 | 国产精品中文字幕在线| 婷婷视频在线| 欧美一区二区三区啪啪| 日韩va亚洲va欧美va清高| 国产精品综合一区二区三区| 青青视频免费在线| 51亚洲精品| 欧美激情伊人电影 | yourporn久久国产精品| 国产青青在线视频| 最新国产一区| 国产日韩中文字幕在线| 51xtv成人影院| 欧美精品一区二区三区蜜桃视频| 亚洲免费在线视频观看| 日本视频不卡| 91久久精品国产91性色tv| 国产91丝袜美女在线播放| 麻豆久久久久久久| 无码人妻精品一区二区蜜桃百度| 国产乱人伦丫前精品视频| 欧美在线精品免播放器视频| 国产三级在线| 91精品婷婷国产综合久久 | 国产1区2区3区在线| 欧美疯狂性受xxxxx喷水图片| 欧美人妻精品一区二区三区| 99精品国产一区二区三区不卡| 国产成人手机视频| 欧美69wwwcom| 色涩成人影视在线播放| 免费欧美网站| 国产精品成熟老女人| 3d玉蒲团在线观看| 亚洲欧美国产视频| 国产丝袜视频在线观看| 色狠狠色狠狠综合| 久久久久成人精品无码| 国产日韩欧美在线一区| 性猛交╳xxx乱大交| 水蜜桃久久夜色精品一区的特点| 50度灰在线观看| 精品久久久中文字幕| 国产自产在线视频一区| 97超碰在线资源| 韩国av一区二区三区| 日韩中文字幕三区| 牛牛国产精品| 午夜精品一区二区在线观看| 国产一区调教| 青青草免费观看视频| 麻豆精品国产91久久久久久| 亚洲乱码日产精品bd在线观看| 国产99久久精品一区二区300| 亚洲一区二区三区视频播放| 97久久香蕉国产线看观看| 欧美风情在线观看| 日本在线视频观看| 亚洲最大在线视频| 99riav1国产精品视频| 久久综合福利| 涩爱av色老久久精品偷偷鲁| 国产精品极品美女在线观看免费 | 91久久精品国产91性色69 | 91黄色小网站| 在线观看日韩av电影| free性m.freesex欧美| 中国人与牲禽动交精品| 天堂网在线播放| 日韩视频免费直播| 一级片免费观看视频| 91黄色免费网站| 日韩精品久久久久久免费| 欧美黑人经典片免费观看 | 91视频免费网站| 性感美女一区二区在线观看| 久久久久久国产精品美女| av在线播放观看| 久久精品视频在线| 337p日本欧洲亚洲大胆鲁鲁| 亚洲欧洲在线视频| 你懂得网站在线| 亚洲毛片在线免费观看| 三级国产在线观看| 日韩精品www| 蜜芽tv福利在线视频| 亚洲欧洲一区二区三区在线观看| 日韩美女一级视频| 亚洲乱码一区av黑人高潮| 日韩av资源站| 亚洲欧美日韩一区二区在线| 黄色在线小视频| 国产亚洲精品高潮| 在线看的av网站| 久久精品国产久精国产思思| 成人影院在线观看| 欧美激情第1页| 九色porny视频在线观看| 欧亚精品中文字幕| 日本欧美韩国| 亚洲综合国产精品| 99久久婷婷国产综合精品青牛牛| 国产一区二区久久久| 色综合中文网| 在线观看成人av电影| 欧美在线资源| 欧美日韩亚洲一| 免费在线观看成人| 永久免费黄色片| 成人精品小蝌蚪| 99久久久无码国产精品性| 中文字幕第一区综合| 亚洲在线免费视频| 户外露出一区二区三区| 国产精品女人网站| 欧美中文高清| 精品免费二区三区三区高中清不卡 | wwwwww日本| 中文字幕一区二区视频| 久草网在线观看| 欧美体内谢she精2性欧美| 亚洲天堂视频网| 日韩美女视频一区二区在线观看| 香蕉视频黄色片| 中文字幕欧美日韩精品| 亚洲无线看天堂av| 欧洲亚洲妇女av| 福利一区三区| 欧美久久久久久一卡四| 一级欧洲+日本+国产| 人妻精品无码一区二区三区| 久国产精品韩国三级视频| 污污免费在线观看| 国产精品私人自拍| 天天操天天干视频| 欧美高清视频在线高清观看mv色露露十八 | 日本成人在线视频网站| 成人做爰www看视频软件| 亚洲国产精品精华液2区45| 国产一级一片免费播放| 欧美日韩在线三级| 四虎影院在线播放| 久久福利视频导航| 日韩经典一区| 精品一区2区三区| 欧美成人综合| 五月婷婷六月丁香激情| 99久久99久久免费精品蜜臀| 91制片厂在线| 在线这里只有精品| 少妇人妻精品一区二区三区| 久久精品人人做人人爽| 丝袜美腿一区| 精品国产一区二区三区久久久久久| 欧美大片aaaa| 99久久国产宗和精品1上映| 成人动漫中文字幕| 中文字幕av久久爽av| 欧美日韩精品高清| 国产视频第一页在线观看| av之家在线观看| 四虎国产精品免费久久5151| 激情视频一区二区| 一区二区不卡| 男女视频在线看| 久久免费视频一区| 国产第100页| 91精品国产91综合久久蜜臀| 91在线看黄| 国产精品h片在线播放| 欧美精品中文| 人妻少妇精品无码专区二区 | 日韩女优在线播放| 欧美亚洲色图校园春色| 国产精品一色哟哟| 国产传媒欧美日韩成人| 亚洲欧美精品aaaaaa片| 欧美视频在线播放| youjizz在线播放| 国产精品成人v| 极品美女一区二区三区| 欧美成人免费高清视频| 26uuu色噜噜精品一区| 五月婷婷中文字幕| 日韩美女av在线| 亚洲十八**毛片| 美脚丝袜一区二区三区在线观看| 国产精品腿扒开做爽爽爽挤奶网站| 伊人久久一区二区三区| 亚洲综合一区二区| 欧美一区二区三区激情| 久久久伊人欧美| 蜜桃一区av| 日本一区二区黄色| 久久精品在这里| 中文字幕av资源| 久久成人这里只有精品| 欧美久久一区二区三区| 日韩xxxx视频| 久久久www免费人成精品| 波多野结衣黄色| 日韩在线观看网址| 精品视频一区二区三区在线观看| 大陆极品少妇内射aaaaaa| 成人一二三区视频| yjizz国产| 色偷偷888欧美精品久久久| 玖玖玖电影综合影院| 久草视频国产在线| www激情久久| 亚洲在线视频播放| 欧美激情2020午夜免费观看| 欧美色资源站| 91网址在线播放| 一区二区三区91| 你懂的在线看| 国产在线观看精品| 亚洲小说区图片区| 少妇久久久久久久久久| 在线播放一区二区三区| 18aaaa精品欧美大片h| 水蜜桃一区二区| 懂色av一区二区三区免费观看| 91在线视频在线观看| 久久久精品久久久久| 精品av导航| 一道本在线免费视频| 亚洲国产毛片aaaaa无费看| 美州a亚洲一视本频v色道| 91在线观看免费| 久久精品1区| 亚洲欧美一区二区三区四区五区| 日韩精品久久久久久福利| 九九久久国产| 熟女少妇在线视频播放| 亚洲欧美在线观看| 四虎成人免费在线| 91久久久久久久久久久久久| 久久精品亚洲一区二区| 久久成人国产精品入口| 最新国产精品亚洲|