日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

easyexcel导出百万级数据_百万级别数据Excel导出优化

發(fā)布時間:2024/7/23 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 easyexcel导出百万级数据_百万级别数据Excel导出优化 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

這篇文章不是標(biāo)題黨,下文會通過一個仿真例子分析如何優(yōu)化百萬級別數(shù)據(jù)Excel導(dǎo)出。

筆者負(fù)責(zé)維護(hù)的一個數(shù)據(jù)查詢和數(shù)據(jù)導(dǎo)出服務(wù)是一個相對遠(yuǎn)古的單點(diǎn)應(yīng)用,在上一次云遷移之后擴(kuò)展為雙節(jié)點(diǎn)部署,但是發(fā)現(xiàn)了服務(wù)經(jīng)常因?yàn)榇髷?shù)據(jù)量的數(shù)據(jù)導(dǎo)出頻繁Full GC,導(dǎo)致應(yīng)用假死無法響應(yīng)外部的請求。因?yàn)槟承┰?#xff0c;該服務(wù)只能夠「分配2GB的最大堆內(nèi)存」,下面的優(yōu)化都是以這個堆內(nèi)存極限為前提。通過查看服務(wù)配置、日志和APM定位到兩個問題:

  • 啟動腳本中添加了CMS參數(shù),采用了CMS收集器,該收集算法對內(nèi)存的敏感度比較高,大批量數(shù)據(jù)導(dǎo)出容易瞬間打滿老年代導(dǎo)致Full GC頻繁發(fā)生。
  • 數(shù)據(jù)導(dǎo)出的時候采用了一次性把目標(biāo)數(shù)據(jù)全部查詢出來再寫到流中的方式,大量被查詢的對象駐留在堆內(nèi)存中,直接打滿整個堆。
  • 對于問題1咨詢過身邊的大牛朋友,直接把所有CMS相關(guān)的所有參數(shù)去掉,由于生產(chǎn)環(huán)境使用了JDK1.8,相當(dāng)于直接使用默認(rèn)的GC收集器參數(shù)-XX:+UseParallelGC,也就是Parallel Scavenge + Parallel Old的組合然后重啟服務(wù)。觀察APM工具發(fā)現(xiàn)Full GC的頻率是有所下降,但是一旦某個時刻導(dǎo)出的數(shù)據(jù)量十分巨大(例如查詢的結(jié)果超過一百萬個對象,超越可用的最大堆內(nèi)存),還是會陷入無盡的Full GC,也就是修改了JVM參數(shù)只起到了治標(biāo)不治本的作用。所以下文會針對這個問題(也就是問題2),通過一個仿真案例來分析一下如何進(jìn)行優(yōu)化。

    一些基本原理

    如果使用Java(或者說依賴于JVM的語言)開發(fā)數(shù)據(jù)導(dǎo)出的模塊,下面的偽代碼是通用的:

    數(shù)據(jù)導(dǎo)出方法(參數(shù),輸出流[OutputStream]){1. 通過參數(shù)查詢需要導(dǎo)出的結(jié)果集2. 把結(jié)果集序列化為字節(jié)序列3. 通過輸出流寫入結(jié)果集字節(jié)序列4. 關(guān)閉輸出流 }

    一個例子如下:

    @Data public static class Parameter{private OffsetDateTime paymentDateTimeStart;private OffsetDateTime paymentDateTimeEnd; }public void export(Parameter parameter, OutputStream os) throws IOException {List<OrderDTO> result = orderDao.query(parameter.getPaymentDateTimeStart(), parameter.getPaymentDateTimeEnd()).stream().map(order -> {OrderDTO dto = new OrderDTO();......return dto;}).collect(Collectors.toList());byte[] bytes = toBytes(result);os.write(bytes);os.close(); }

    針對不同的OutputStream實(shí)現(xiàn),最終可以把數(shù)據(jù)導(dǎo)出到不同類型的目標(biāo)中,例如對于FileOutputStream而言相當(dāng)于把數(shù)據(jù)導(dǎo)出到文件中,而對于SocketOutputStream而言相當(dāng)于把數(shù)據(jù)導(dǎo)出到網(wǎng)絡(luò)流中(客戶端可以讀取該流實(shí)現(xiàn)文件下載)。目前B端應(yīng)用比較常見的文件導(dǎo)出都是使用后一種實(shí)現(xiàn),基本的交互流程如下:

    為了節(jié)省服務(wù)器的內(nèi)存,這里的返回數(shù)據(jù)和數(shù)據(jù)傳輸部分可以設(shè)計為分段處理,也就是查詢的時候考慮把查詢?nèi)康慕Y(jié)果這個思路改變?yōu)槊看沃徊樵儾糠謹(jǐn)?shù)據(jù),直到得到全量的數(shù)據(jù),每批次查詢的結(jié)果數(shù)據(jù)都寫進(jìn)去OutputStream中。

    這里以MySQL為例,可以使用類似于分頁查詢的思路,但是鑒于LIMIT offset,size的效率太低,結(jié)合之前的一些實(shí)踐,采用了一種「改良的"滾動翻頁"的實(shí)現(xiàn)方式」(這個方式是前公司的某個架構(gòu)小組給出來的思路,后面廣泛應(yīng)用于各種批量查詢、數(shù)據(jù)同步、數(shù)據(jù)導(dǎo)出以及數(shù)據(jù)遷移等等場景,這個思路肯定不是首創(chuàng)的,但是實(shí)用性十分高),注意這個方案要求表中包含一個有自增趨勢的主鍵,單條查詢SQL如下:

    SELECT * FROM tableX WHERE id > #{lastBatchMaxId} [其他條件] ORDER BY id [ASC|DESC](這里一般選用ASC排序) LIMIT ${size}

    把上面的SQL放進(jìn)去前一個例子中,并且假設(shè)訂單表使用了自增長整型主鍵id,那么上面的代碼改造如下:

    public void export(Parameter parameter, OutputStream os) throws IOException {long lastBatchMaxId = 0L;for (;;){List<Order> orders = orderDao.query([SELECT * FROM t_order WHERE id > #{lastBatchMaxId} AND payment_time >= #{parameter.paymentDateTimeStart} AND payment_time <= #{parameter.paymentDateTimeEnd} ORDER BY id ASC LIMIT ${LIMIT}]);if (orders.isEmpty()){break;}List<OrderDTO> result =orderDao.query([SELECT * FROM t_order]).stream().map(order -> {OrderDTO dto = new OrderDTO();......return dto;}).collect(Collectors.toList());byte[] bytes = toBytes(result);os.write(bytes);os.flush();lastBatchMaxId = orders.stream().map(Order::getId).max(Long::compareTo).orElse(Long.MAX_VALUE);}os.close(); }

    「上面這個示例就是百萬級別數(shù)據(jù)Excel導(dǎo)出優(yōu)化的核心思路」。查詢和寫入輸出流的邏輯編寫在一個死循環(huán)中,因?yàn)椴樵兘Y(jié)果是使用了自增主鍵排序的,而屬性lastBatchMaxId則存放了本次查詢結(jié)果集中的最大id,同時它也是下一批查詢的起始id,這樣相當(dāng)于基于id和查詢條件向前滾動,直到查詢條件不命中任何記錄返回了空列表就會退出死循環(huán)。而limit字段則用于控制每批查詢的記錄數(shù),可以按照應(yīng)用實(shí)際分配的內(nèi)存和每批次查詢的數(shù)據(jù)量考量設(shè)計一個合理的值,這樣就能讓單個請求下常駐內(nèi)存的對象數(shù)量控制在limit個從而使應(yīng)用的內(nèi)存使用更加可控,避免因?yàn)椴l(fā)導(dǎo)出導(dǎo)致堆內(nèi)存瞬間被打滿。

    ?
    這里的滾動翻頁方案遠(yuǎn)比LIMIT offset,size效率高,因?yàn)榇朔桨该看尾樵兌际亲罱K的結(jié)果集,而一般的分頁方案使用的LIMIT offset,size需要先查詢,后截斷。
    ?

    仿真案例

    某個應(yīng)用提供了查詢訂單和導(dǎo)出記錄的功能,表設(shè)計如下:

    DROP TABLE IF EXISTS `t_order`;CREATE TABLE `t_order` (`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT '主鍵',`creator` VARCHAR(16) NOT NULL DEFAULT 'admin' COMMENT '創(chuàng)建人',`editor` VARCHAR(16) NOT NULL DEFAULT 'admin' COMMENT '修改人',`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時間',`edit_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時間',`version` BIGINT NOT NULL DEFAULT 1 COMMENT '版本號',`deleted` TINYINT NOT NULL DEFAULT 0 COMMENT '軟刪除標(biāo)識',`order_id` VARCHAR(32) NOT NULL COMMENT '訂單ID',`amount` DECIMAL(10, 2) NOT NULL DEFAULT 0 COMMENT '訂單金額',`payment_time` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '支付時間',`order_status` TINYINT NOT NULL DEFAULT 0 COMMENT '訂單狀態(tài),0:處理中,1:支付成功,2:支付失敗',UNIQUE uniq_order_id (`order_id`),INDEX idx_payment_time (`payment_time`) ) COMMENT '訂單表';

    現(xiàn)在要基于支付時間段導(dǎo)出一批訂單數(shù)據(jù),先基于此需求編寫一個簡單的SpringBoot應(yīng)用,這里的Excel處理工具選用Alibaba出品的EsayExcel,主要依賴如下:

    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId> </dependency> <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.18</version> </dependency> <dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.6</version> </dependency>

    模擬寫入200W條數(shù)據(jù),生成數(shù)據(jù)的測試類如下:

    public class OrderServiceTest {private static final Random OR = new Random();private static final Random AR = new Random();private static final Random DR = new Random();@Testpublic void testGenerateTestOrderSql() throws Exception {HikariConfig config = new HikariConfig();config.setUsername("root");config.setPassword("root");config.setJdbcUrl("jdbc:mysql://localhost:3306/local?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&useSSL=false");config.setDriverClassName(Driver.class.getName());HikariDataSource hikariDataSource = new HikariDataSource(config);JdbcTemplate jdbcTemplate = new JdbcTemplate(hikariDataSource);for (int d = 0; d < 100; d++) {String item = "('%s','%d','2020-07-%d 00:00:00','%d')";StringBuilder sql = new StringBuilder("INSERT INTO t_order(order_id,amount,payment_time,order_status) VALUES ");for (int i = 0; i < 20_000; i++) {sql.append(String.format(item, UUID.randomUUID().toString().replace("-", ""),AR.nextInt(100000) + 1, DR.nextInt(31) + 1, OR.nextInt(3))).append(",");}jdbcTemplate.update(sql.substring(0, sql.lastIndexOf(",")));}hikariDataSource.close();} }

    基于JdbcTemplate編寫DAO類OrderDao:

    @RequiredArgsConstructor @Repository public class OrderDao {private final JdbcTemplate jdbcTemplate;public List<Order> queryByScrollingPagination(long lastBatchMaxId,int limit,LocalDateTime paymentDateTimeStart,LocalDateTime paymentDateTimeEnd) {return jdbcTemplate.query("SELECT * FROM t_order WHERE id > ? AND payment_time >= ? AND payment_time <= ? " +"ORDER BY id ASC LIMIT ?",p -> {p.setLong(1, lastBatchMaxId);p.setTimestamp(2, Timestamp.valueOf(paymentDateTimeStart));p.setTimestamp(3, Timestamp.valueOf(paymentDateTimeEnd));p.setInt(4, limit);},rs -> {List<Order> orders = new ArrayList<>();while (rs.next()) {Order order = new Order();order.setId(rs.getLong("id"));order.setCreator(rs.getString("creator"));order.setEditor(rs.getString("editor"));order.setCreateTime(OffsetDateTime.ofInstant(rs.getTimestamp("create_time").toInstant(), ZoneId.systemDefault()));order.setEditTime(OffsetDateTime.ofInstant(rs.getTimestamp("edit_time").toInstant(), ZoneId.systemDefault()));order.setVersion(rs.getLong("version"));order.setDeleted(rs.getInt("deleted"));order.setOrderId(rs.getString("order_id"));order.setAmount(rs.getBigDecimal("amount"));order.setPaymentTime(OffsetDateTime.ofInstant(rs.getTimestamp("payment_time").toInstant(), ZoneId.systemDefault()));order.setOrderStatus(rs.getInt("order_status"));orders.add(order);}return orders;});} }

    編寫服務(wù)類OrderService:

    @Data public class OrderDTO {@ExcelIgnoreprivate Long id;@ExcelProperty(value = "訂單號", order = 1)private String orderId;@ExcelProperty(value = "金額", order = 2)private BigDecimal amount;@ExcelProperty(value = "支付時間", order = 3)private String paymentTime;@ExcelProperty(value = "訂單狀態(tài)", order = 4)private String orderStatus; }@Service @RequiredArgsConstructor public class OrderService {private final OrderDao orderDao;private static final DateTimeFormatter F = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");public List<OrderDTO> queryByScrollingPagination(String paymentDateTimeStart,String paymentDateTimeEnd,long lastBatchMaxId,int limit) {LocalDateTime start = LocalDateTime.parse(paymentDateTimeStart, F);LocalDateTime end = LocalDateTime.parse(paymentDateTimeEnd, F);return orderDao.queryByScrollingPagination(lastBatchMaxId, limit, start, end).stream().map(order -> {OrderDTO dto = new OrderDTO();dto.setId(order.getId());dto.setAmount(order.getAmount());dto.setOrderId(order.getOrderId());dto.setPaymentTime(order.getPaymentTime().format(F));dto.setOrderStatus(OrderStatus.fromStatus(order.getOrderStatus()).getDescription());return dto;}).collect(Collectors.toList());} }

    最后編寫控制器OrderController:

    @RequiredArgsConstructor @RestController @RequestMapping(path = "/order") public class OrderController {private final OrderService orderService;@GetMapping(path = "/export")public void export(@RequestParam(name = "paymentDateTimeStart") String paymentDateTimeStart,@RequestParam(name = "paymentDateTimeEnd") String paymentDateTimeEnd,HttpServletResponse response) throws Exception {String fileName = URLEncoder.encode(String.format("%s-(%s).xlsx", "訂單支付數(shù)據(jù)", UUID.randomUUID().toString()),StandardCharsets.UTF_8.toString());response.setContentType("application/force-download");response.setHeader("Content-Disposition", "attachment;filename=" + fileName);ExcelWriter writer = new ExcelWriterBuilder().autoCloseStream(true).excelType(ExcelTypeEnum.XLSX).file(response.getOutputStream()).head(OrderDTO.class).build();// xlsx文件上上限是104W行左右,這里如果超過104W需要分SheetWriteSheet writeSheet = new WriteSheet();writeSheet.setSheetName("target");long lastBatchMaxId = 0L;int limit = 500;for (; ; ) {List<OrderDTO> list = orderService.queryByScrollingPagination(paymentDateTimeStart, paymentDateTimeEnd, lastBatchMaxId, limit);if (list.isEmpty()) {writer.finish();break;} else {lastBatchMaxId = list.stream().map(OrderDTO::getId).max(Long::compareTo).orElse(Long.MAX_VALUE);writer.write(list, writeSheet);}}} }

    這里為了方便,把一部分業(yè)務(wù)邏輯代碼放在控制器層編寫,實(shí)際上這是不規(guī)范的編碼習(xí)慣,這一點(diǎn)不要效仿。添加配置和啟動類之后,通過請求http://localhost:10086/order/export?paymentDateTimeStart=2020-07-01 00:00:00&paymentDateTimeEnd=2020-07-16 00:00:00測試導(dǎo)出接口,某次導(dǎo)出操作后臺輸出日志如下:

    導(dǎo)出數(shù)據(jù)耗時:29733 ms,start:2020-07-01 00:00:00,end:2020-07-16 00:00:00

    導(dǎo)出成功后得到一個文件(連同表頭一共1031540行):

    小結(jié)

    這篇文章詳細(xì)地分析大數(shù)據(jù)量導(dǎo)出的性能優(yōu)化,最要側(cè)重于內(nèi)存優(yōu)化。該方案實(shí)現(xiàn)了在盡可能少占用內(nèi)存的前提下,在效率可以接受的范圍內(nèi)進(jìn)行大批量的數(shù)據(jù)導(dǎo)出。這是一個可復(fù)用的方案,類似的設(shè)計思路也可以應(yīng)用于其他領(lǐng)域或者場景,不局限于數(shù)據(jù)導(dǎo)出。

    文中demo項目的倉庫地址是:

    • Github:https://github.com/zjcscut/spring-boot-guide/tree/master/ch10086-excel-export

    (本文完 c-2-d e-a-20200820 20:27 PM)

    總結(jié)

    以上是生活随笔為你收集整理的easyexcel导出百万级数据_百万级别数据Excel导出优化的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

    精品亚洲男同gayvideo网站 | 伊人久久电影网 | 91污在线| 国产亚洲精品久久久久5区 成人h电影在线观看 | 久久成人久久 | 亚洲精品资源在线观看 | 亚洲福利精品 | 精品在线一区二区三区 | 国产精品一区二区三区在线播放 | 国产专区视频 | 丁香综合av| 日韩性网站 | 久久久久综合视频 | 最近日本中文字幕a | 国产视频在线看 | 国内精品久久久久久久久久清纯 | 亚洲午夜精品久久久久久久久 | 亚洲视频免费在线观看 | 狠狠狠狠狠狠狠狠 | 日韩视频图片 | 香蕉视频亚洲 | 国产三级在线播放 | 在线黄频 | 欧美成人h版 | 日韩在线视频网址 | av综合网址 | 欧美性色黄 | 免费福利在线观看 | 国产精品毛片久久久 | 欧美做受高潮 | 国产成人a亚洲精品v | 色婷婷综合久久久 | 色吧av色av| 久久久久免费精品国产 | 免费看十八岁美女 | 制服丝袜天堂 | 欧美人体xx | 久久夜夜爽 | 91成人免费观看视频 | 蜜桃视频在线视频 | 日日夜夜网站 | 天天综合网 天天综合色 | 超碰97在线资源站 | 亚洲精品国产精品国自产观看 | 亚洲国产日韩欧美在线 | 久久伊人国产精品 | 伊人久久五月天 | 麻豆免费视频观看 | 午夜美女视频 | 91在线小视频 | 国产精品一区在线播放 | 少妇bbb| 婷婷精品在线 | 国产69精品久久app免费版 | 天天干天天操天天射 | 免费国产亚洲视频 | 日日操日日操 | 中文字幕一区av | 97成人在线视频 | 日韩理论在线视频 | 福利电影一区二区 | 超碰97人人干 | 美女在线免费视频 | 免费高清无人区完整版 | 成人理论在线观看 | 欧美久久久久久久久久 | 69av久久| 国产精品久久久久久吹潮天美传媒 | 玖玖在线看 | 综合网婷婷 | 久久久国产精品麻豆 | 日韩激情视频在线 | 黄污网站在线观看 | 午夜精品一区二区三区在线观看 | 午夜在线免费观看视频 | 超碰97在线人人 | 丁香婷婷激情 | 国产 日韩 在线 亚洲 字幕 中文 | 五月综合网 | 麻花天美星空视频 | 男女啪啪网站 | 欧美一级电影 | 亚洲三级网站 | 色九九在线 | 一区二区亚洲精品 | 国产精品视频免费看 | 国内精品免费久久影院 | 91精品一区二区在线观看 | 亚洲国产丝袜在线观看 | 国产乱视频 | 国产麻豆视频网站 | 在线观看韩日电影免费 | 怡红院av久久久久久久 | 久久久久免费精品 | 久久午夜免费视频 | 日韩在线看片 | 91亚洲夫妻 | 色亚洲激情 | 中文字幕人成人 | 人人揉人人揉人人揉人人揉97 | 91香蕉视频在线下载 | 成年人在线看片 | 99精品免费在线 | 欧美午夜久久久 | 私人av| 97品白浆高清久久久久久 | 中文字幕免费中文 | 国产五月色婷婷六月丁香视频 | 午夜 久久 tv | 久久影院中文字幕 | 久久久在线视频 | 亚洲一区 av | 中文字幕在线观看免费高清完整版 | 色福利网 | 亚洲午夜久久久久久久久电影网 | 天天综合中文 | 久久精品a | 国产精品高清一区二区三区 | 久久99热这里只有精品 | 很黄很色很污的网站 | 中文国产成人精品久久一 | 正在播放一区二区 | 不卡国产在线 | 一区二区三区国产欧美 | 午夜999| 九九热只有这里有精品 | 国产一区高清在线观看 | 亚洲精品99久久久久中文字幕 | 超碰97中文 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 成人动图 | 91喷水| 国内99视频| 国产成人一区二区三区影院在线 | 五月花丁香婷婷 | 最新一区二区三区 | 国产精品igao视频网网址 | 亚洲国产精品久久 | 成人性生交视频 | 久草久视频 | 国产精品免费人成网站 | 久久成人精品电影 | 亚洲日日日 | 成人av网站在线播放 | 免费男女羞羞的视频网站中文字幕 | 91久久久国产精品 | 一级免费观看 | 不卡电影免费在线播放一区 | 正在播放国产精品 | 天天操比 | 久久无码av一区二区三区电影网 | 丁香久久激情 | 日韩综合在线观看 | 中文字幕一区二区三区乱码不卡 | 麻豆精品视频在线 | 超碰在线94| 久久深夜福利免费观看 | 婷婷久久一区二区三区 | 24小时日本在线www免费的 | 欧美性成人| 亚洲精品福利视频 | 999色视频 | 日韩在线观看视频一区二区三区 | 免费视频三区 | 亚洲最新av网址 | 久草在线视频在线 | 国际精品网 | 婷婷综合伊人 | 国产韩国日本高清视频 | av电影在线观看 | 亚洲精品乱码久久久久久久久久 | 精品视频不卡 | 免费观看全黄做爰大片国产 | 91精彩在线视频 | 91在线免费播放视频 | 人人草在线视频 | 国产亚洲成人精品 | 日本在线h | 亚洲v欧美v国产v在线观看 | 国产精品免费不卡 | 久久久久欧美精品 | 国产字幕在线观看 | 国产精品久久久久影院 | 欧美视频日韩 | 婷婷色中文 | 成人性生交视频 | 成年人看片 | 久久久美女 | 特级片免费看 | 天天射天天色天天干 | 狠狠干网 | 久久久999精品视频 国产美女免费观看 | 免费网站黄色 | 97福利在线观看 | 国产色综合天天综合网 | 欧美日韩视频网站 | 精品国产美女 | 午夜性盈盈 | 成人免费观看视频网站 | 国产视频久久久 | 国产精品6 | 日韩精品久久久久 | 日韩欧美高清在线 | 五月天六月丁香 | 日韩欧美在线高清 | 麻花豆传媒一二三产区 | 久久久久成人精品免费播放动漫 | 欧美日韩高清一区 | av免费电影在线观看 | 美女很黄免费网站 | 日韩网 | 激情视频一区二区三区 | av在线网站免费观看 | 日本中文字幕免费观看 | 午夜国产在线 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产免费人人看 | 97理论电影 | 成人久久久久久久久久 | 久久99久久99久久 | 97干com| 国产精品久久久久久久99 | 91在线看视频免费 | 精品国产伦一区二区三区观看方式 | 亚洲综合成人在线 | 亚洲最新视频在线 | 亚洲精品福利视频 | 久久综合偷偷噜噜噜色 | 久久综合中文字幕 | 九九有精品 | 日本精品久久久一区二区三区 | 国产一性一爱一乱一交 | 日韩av综合网站 | 久草爱 | 国产亚洲精品女人久久久久久 | 国产精品ssss在线亚洲 | 天天综合网久久综合网 | 国产又粗又猛又黄又爽视频 | 91av资源网 | 99爱视频| 精品在线观看国产 | 97超碰中文字幕 | 亚洲欧洲精品一区二区 | 91香蕉视频在线 | 国产呻吟在线 | 日韩超碰在线 | 日本精品视频免费 | 探花视频在线版播放免费观看 | 91av影视| 日韩网站一区二区 | 欧美激情视频一二区 | www.在线看片.com | 成人网在线免费视频 | 日韩在线视频网 | 激情综合五月天 | 黄色影院在线免费观看 | 天天操天天综合网 | 欧美日在线 | 亚洲欧洲一区二区在线观看 | 婷婷综合伊人 | 黄色国产高清 | 国产精品一区二区三区免费看 | 久久精品在线免费观看 | 日韩av免费在线看 | 久久免费激情视频 | 在线观看视频国产 | 九九热在线播放 | 国产精品久久久久一区二区三区共 | 最新国产一区二区三区 | 日韩欧美在线免费观看 | 又黄又爽又色无遮挡免费 | av电影中文字幕在线观看 | 亚洲精品99久久久久中文字幕 | 欧美精品一区在线 | 日韩精品91偷拍在线观看 | 欧美日本啪啪无遮挡网站 | 九色在线 | 极品久久久久 | 三级黄色网址 | 成 人 黄 色视频免费播放 | 午夜精品视频免费在线观看 | 麻豆系列在线观看 | 91免费试看| 久久激情五月丁香伊人 | 久久久久这里只有精品 | 91亚洲国产成人久久精品网站 | 欧美日韩一级久久久久久免费看 | 999久久精品 | 亚洲成人网av | 亚洲专区路线二 | av中文字幕av | 国产亚洲在线 | 久久99久久99 | 99久久日韩精品视频免费在线观看 | 久久综合天天 | 在线视频1卡二卡三卡 | 成人资源在线观看 | 999久久国精品免费观看网站 | av黄色在线 | 欧美日韩免费观看一区=区三区 | 五月婷婷综合色拍 | 久久综合狠狠综合 | 最近免费中文字幕大全高清10 | 天天综合色网 | 精品久久久久久久久亚洲 | 日本护士撒尿xxxx18 | 精品国产乱码久久 | 国产精品美女久久久久久久 | 免费在线播放av电影 | 99久久精品国产欧美主题曲 | 午夜视频在线观看一区二区三区 | 欧美a在线看| 亚洲经典视频在线观看 | 伊人狠狠干 | 国产成人av福利 | 91高清免费在线观看 | 玖玖爱在线观看 | 国产美女视频网站 | 国产精品久久久久久久久久免费看 | 日韩黄色免费 | 日韩电影一区二区三区 | 国产精品日韩精品 | 欧美日韩在线精品一区二区 | 97品白浆高清久久久久久 | 夜夜爱av | 久久综合给合久久狠狠色 | 国产在线欧美在线 | 狠狠色丁香久久婷婷综合丁香 | 欧美一级视频免费 | 精品国产日本 | 91在线免费播放视频 | 欧美日韩一区二区三区不卡 | 91女神的呻吟细腰翘臀美女 | 丁香九月激情 | 亚洲少妇影院 | 中文字幕精品在线 | 亚洲精品动漫久久久久 | 黄色1级毛片| 日本精品视频在线 | 97国产情侣爱久久免费观看 | 欧美日韩一区二区三区在线免费观看 | 操夜夜操 | 午夜久久福利视频 | 欧美大片在线观看一区 | 久久精品国产99国产 | 日韩一区二区免费播放 | 在线观看免费av片 | 精品在线观看一区二区 | 男女免费视频观看 | 久久久久亚洲精品成人网小说 | 日韩欧美一区二区三区免费观看 | av大全在线观看 | 在线视频一区二区 | 色网站在线免费观看 | 欧美亚洲成人免费 | 高清不卡毛片 | 日韩一区二区三区视频在线 | 久久精品视频在线免费观看 | 国产成人黄色 | 丰满少妇高潮在线观看 | 国产精品ssss在线亚洲 | a级国产毛片 | 五月香视频在线观看 | 亚洲男人天堂a | 不卡av电影在线 | 97视频在线看 | 亚洲精品久久久蜜臀下载官网 | 99久热在线精品视频成人一区 | 最新亚洲视频 | 欧美 日韩 性| 欧美精品免费一区二区 | 日本性久久 | 成人在线视频免费 | 天天干,天天干 | 精品国产一区二区三区四区vr | 日韩三级av | 国产综合福利在线 | 人人干人人爽 | 99视频在线免费观看 | www一起操| 国产五月色婷婷六月丁香视频 | 日韩三级视频在线看 | .国产精品成人自产拍在线观看6 | 国产在线更新 | 精品视频成人 | 亚洲国产精品久久久久婷婷884 | 久久网站免费 | 99视频精品视频高清免费 | 97色视频在线 | 国产美女在线观看 | 99精品视频在线免费观看 | 国产喷水在线 | 麻豆视频在线播放 | 天天操天天舔天天干 | 五月婷综合 | 一区二区三区免费在线观看视频 | 亚洲成人黄色av | 国产午夜亚洲精品 | 婷婷丁香色| 91亚洲精品国偷拍 | 五月天婷婷综合 | 国内精品久久影院 | 51久久夜色精品国产麻豆 | 很黄很黄的网站免费的 | 免费在线观看国产精品 | 欧美性黑人 | 日韩av免费观看网站 | 97视频播放 | 精品96久久久久久中文字幕无 | 成年人电影免费看 | 日韩成人av在线 | 在线观看国产永久免费视频 | 蜜桃av人人夜夜澡人人爽 | 国产精品久免费的黄网站 | 日日夜夜免费精品视频 | 日本公乱妇视频 | 亚洲女欲精品久久久久久久18 | 91av资源在线 | 国产精品久久久久久麻豆一区 | 国产视频欧美视频 | 日韩精品久久久久久久电影99爱 | 天天摸天天干天天操天天射 | 日韩福利在线观看 | 色综合天 | 婷婷亚洲五月 | 精品视频免费看 | 四虎影视久久久 | 91av电影在线观看 | 国产91对白在线播 | 欧美日韩国产伦理 | 国产明星视频三级a三级点| 狠狠狠干 | 国产在线观看你懂得 | 午夜性色 | 久久综合成人网 | 亚洲精品资源在线观看 | 久久看视频 | 99日精品 | 久久综合九色 | 精品视频在线视频 | 人人爽久久涩噜噜噜网站 | 在线视频观看亚洲 | 婷婷伊人综合亚洲综合网 | 久久香蕉电影网 | 国产免费专区 | 手机成人av| 成人在线视频免费看 | 欧美一级日韩免费不卡 | 在线播放 亚洲 | 麻豆国产精品永久免费视频 | 日韩精品免费在线 | 天天天干夜夜夜操 | 久久精品人人做人人综合老师 | 91精品国产综合久久久久久久 | 97视频在线免费观看 | 国产精品一区二区三区电影 | 亚洲精品免费视频 | 成人宗合网| 又黄又爽免费视频 | 又湿又紧又大又爽a视频国产 | 国产精品久久久久久久av电影 | 国产最新在线观看 | 丁香婷婷电影 | 日韩在线视频网 | 成人中文字幕在线 | 日韩一区二区免费视频 | .精品久久久麻豆国产精品 亚洲va欧美 | 日韩精品一区在线播放 | 午夜免费久久看 | 黄色一区二区在线观看 | 99热这里只有精品在线观看 | 久久公开视频 | 免费高清看电视网站 | 国产久草在线 | www.久久婷婷 | 亚洲欧美日韩中文在线 | 国产精品福利视频 | 伊人婷婷网 | 66av99精品福利视频在线 | 五月天中文字幕 | 97电影在线看视频 | 97人人超碰在线 | 最近中文字幕高清字幕在线视频 | 人人爱在线视频 | 久久国产系列 | 久久专区| 天天拍天天色 | 九九免费在线观看视频 | 国产精品系列在线观看 | 91精品国产99久久久久 | 五月天激情在线 | 久久久久久福利 | 超碰在线9 | 91免费视频黄 | 亚洲欧美日韩国产精品一区午夜 | 久久精品人人做人人综合老师 | 国产精品美女免费 | 亚洲一级国产 | 欧美一级片在线观看视频 | 日韩高清免费电影 | 999成人免费视频 | 中文字幕一二三区 | 最近免费中文字幕mv在线视频3 | 午夜精品电影 | 日韩欧美v | 99热最新地址 | 色天天中文 | 久久免费的精品国产v∧ | 久久久污| 色婷婷激情电影 | 国产黄色在线网站 | 天天人人 | 国产精品a级 | 嫩草伊人久久精品少妇av | 超碰人人99 | 91在线中文 | 色网站在线免费 | 麻豆视频在线看 | 尤物一区二区三区 | 97超碰国产精品 | 九九99| 九九导航 | 午夜婷婷综合 | 九九天堂 | 99免在线观看免费视频高清 | 在线视频专区 | 国产在线2020 | 久久成人精品电影 | 91桃色在线观看视频 | 天天操天天干天天玩 | 国产在线视频一区二区三区 | 右手影院亚洲欧美 | 国产一级在线免费观看 | 青青久草在线 | 亚洲不卡av一区二区三区 | 成人精品99 | 免费激情网 | 亚洲视频综合在线 | 美女视频网站久久 | 91精品一区国产高清在线gif | 一级免费片 | 欧美日韩精品在线观看 | 五月天激情婷婷 | 色悠悠久久综合 | av不卡中文字幕 | 久久黄视频 | 中文字幕在线看视频 | 国产亚洲视频系列 | 日韩一区在线免费观看 | 日本护士三级少妇三级999 | www久久久久 | 天天操狠狠操网站 | 欧美精品久久久久性色 | 日本精品视频在线观看 | 亚洲综合色av | 午夜影视剧场 | 深爱激情五月婷婷 | 五月天久久精品 | 日本精品视频在线观看 | 91视频亚洲| 黄色小说视频网站 | 国产精品18久久久久久久 | 欧美色精品天天在线观看视频 | 久久国产免费看 | 色网站在线免费 | 天天艹 | 久久66热这里只有精品 | 国产午夜小视频 | 成人羞羞视频在线观看免费 | 国产精品男女 | 国产区精品视频 | av成人免费在线观看 | 日日夜夜网 | 国产精品白浆视频 | 91在线视频精品 | 超级碰碰碰视频 | 国产精品高清免费在线观看 | 91在线91拍拍在线91 | 91在线文字幕| 99婷婷狠狠成为人免费视频 | 国产精品国产三级国产不产一地 | 99热亚洲精品 | 婷婷日韩 | 粉嫩av一区二区三区免费 | 国精产品满18岁在线 | 麻豆视频免费播放 | 五月天久久久 | 亚洲一区二区三区精品在线观看 | 99国产精品免费网站 | 久久99精品久久久久久三级 | 九九精品毛片 | 九九免费精品 | 热re99久久精品国产66热 | 国产成人精品综合久久久 | 成人影片在线免费观看 | 中文字幕在线专区 | 国产精品日韩在线 | 日韩欧美视频二区 | 人人干天天干 | 中文字幕永久在线 | 午夜精品一区二区三区免费 | 91网在线看 | 热久久这里只有精品 | 狠狠色伊人亚洲综合网站色 | 国产精品伦一区二区三区视频 | 色片网站在线观看 | 久久久国产99久久国产一 | 91福利在线导航 | 狠狠色噜噜狠狠 | av 一区 二区 久久 | 久久久免费观看完整版 | 亚洲欧美成人网 | 久草在线在线 | 国产日韩精品一区二区 | 久久久久久毛片精品免费不卡 | 欧美日韩高清在线一区 | 久久亚洲私人国产精品 | www.久久爱.cn | 69精品视频在线观看 | 中文字幕日韩无 | 欧洲精品久久久久毛片完整版 | 天天综合久久综合 | 西西44人体做爰大胆视频 | 最新午夜| 成人国产一区二区 | 人人澡人 | 一区二区三区中文字幕在线观看 | 日本黄色免费观看 | 在线观看视频国产 | 亚洲成av片人久久久 | 9在线观看免费 | 在线播放日韩av | www178ccom视频在线 | 国产又粗又猛又爽又黄的视频免费 | 波多野结衣在线播放视频 | 九九九热精品 | 久久黄色成人 | 中文字幕在线视频一区二区 | 在线观看中文字幕亚洲 | 久久午夜视频 | 久久久久人人 | 黄色成人免费电影 | 丁香六月婷 | 丁香资源影视免费观看 | 欧美精品久久久久久久久久 | 玖玖精品视频 | 午夜少妇一区二区三区 | 欧美久久久久久久久久 | 黄色片视频免费 | 日韩丝袜视频 | 婷婷丁香花 | 日韩视频在线一区 | www.狠狠插.com | 久久在线免费观看 | 操操综合| 五月天久久综合 | 国产福利精品视频 | 久久视频二区 | 久久99久久99精品 | 免费高清在线观看电视网站 | 99热.com| 日韩在线三级 | 99在线精品视频在线观看 | 国产日韩欧美在线观看视频 | 日韩av中文在线 | 精品国产精品久久一区免费式 | 黄色电影小说 | 免费观看性生交 | 色多多污污 | 免费亚洲视频在线观看 | 天天干天天看 | 久久免费福利 | 亚洲撸撸 | 日韩免费在线一区 | 婷婷国产视频 | 亚洲国产一区在线观看 | 黄色在线观看www | 久久久久久综合网天天 | 色网站国产精品 | 欧美精品日韩 | 久操操| 日本精品在线看 | 色综合久久悠悠 | 亚洲视频2 | 91亚色视频在线观看 | 欧美男同视频网站 | 精品久久久久国产免费第一页 | 99久高清在线观看视频99精品热在线观看视频 | 伊人婷婷综合 | 亚洲国产高清视频 | 日韩经典一区二区三区 | 手机在线视频福利 | 国产精品永久久久久久久久久 | 日本精品一区二区三区在线播放视频 | 亚洲精品456在线播放第一页 | 久草视频在线免费播放 | 欧美大片aaa | 久免费| 日韩专区在线观看 | 免费福利片2019潦草影视午夜 | 深爱开心激情网 | 成年人免费在线观看网站 | 三级av免费| 亚洲欧美视频在线观看 | 蜜臀久久99精品久久久无需会员 | 中文字幕一二三区 | 五月天激情视频在线观看 | 亚洲第一香蕉视频 | 最近中文字幕视频网 | 国产精品久久久av | 天天插天天干天天操 | 香蕉视频导航 | 久久久国产精品视频 | 国产精品1区 | 色偷偷人人澡久久超碰69 | 欧美日韩在线看 | 亚洲一区二区麻豆 | 亚洲专区在线播放 | 天天色天天上天天操 | 久久久久欧美精品 | av日韩不卡 | 99电影456麻豆| 99综合电影在线视频 | 久久不射影院 | 久久不卡电影 | 精品一区二区三区香蕉蜜桃 | 特级毛片网站 | 草免费视频| 日韩av视屏在线观看 | 在线国产一区二区三区 | www..com毛片 | 亚洲视频456 | 九九视频精品在线 | 中文字幕一区在线 | 99久久99久久精品免费 | 国产成人一区二区精品非洲 | 日韩欧美高清一区二区三区 | 亚州国产精品视频 | 日韩av不卡在线播放 | 99视频精品免费观看, | 亚洲综合色婷婷 | 最近中文字幕高清字幕免费mv | 中文字幕视频播放 | 色综合亚洲精品激情狠狠 | 91丨九色丨丝袜 | 国产精品不卡视频 | 狠狠操综合 | 日韩精品一区二区不卡 | 亚洲精品国产精品国自产观看 | av大全在线免费观看 | 97热视频| v片在线看 | 亚洲国产精品资源 | 日韩专区在线观看 | www九九热 | 亚色视频在线观看 | 国产精品毛片一区视频 | 男女视频国产 | 国产亚洲va综合人人澡精品 | 91麻豆精品国产91久久久无限制版 | 天天躁日日| 国产高清专区 | 亚洲国产精品久久久久婷婷884 | 射射色| 麻豆免费观看视频 | 成年人免费看av | 亚洲最新毛片 | 国产精品1区2区在线观看 | 99久久激情视频 | www.久久99| 超碰在线97免费 | 国产午夜在线观看 | av日韩国产 | 六月色丁香 | 五月天婷婷免费视频 | 久久xxxx| 综合五月婷婷 | 91丨porny丨九色 | 国产精品久久久久久久久软件 | 九月婷婷人人澡人人添人人爽 | 国产亚洲视频系列 | 在线观看免费视频你懂的 | 456免费视频 | 亚洲在线观看av | 手机在线永久免费观看av片 | 天天爱天天干天天爽 | 欧美日本在线观看视频 | 免费www视频 | 免费三及片 | 久久精彩视频 | 日本精品久久久久久 | 中文字幕精品一区二区精品 | 久久观看最新视频 | 白丝av在线 | 欧美在线视频日韩 | 亚洲午夜精 | 久草手机视频 | 91一区在线观看 | 伊人天天综合 | 日韩高清无线码2023 | 久操视频在线免费看 | 激情综合啪啪 | a天堂在线看 | 欧美淫视频 | 国产精品久久片 | 成人aⅴ视频 | 一级淫片在线观看 | 国产精品免费大片视频 | 欧美日比视频 | 九九九九九九精品任你躁 | 精品夜夜嗨av一区二区三区 | 国产午夜视频在线观看 | 开心色插| 欧美日韩高清一区二区 | 国产亚洲成av人片在线观看桃 | 九九热久久久 | 午夜123 | 亚洲另类视频在线 | 婷婷色综 | 91福利国产在线观看 | 久久综合九色综合欧美狠狠 | 日韩丝袜视频 | 97超碰国产在线 | 日韩一区二区三区高清免费看看 | 色综合久久综合中文综合网 | 国产精品美女久久久久久 | 99热这里只有精品免费 | 国产在线播放一区二区 | 欧美成人999| 日韩在线观看不卡 | 亚洲综合情 | 国产视频欧美视频 | 色五丁香 | 黄色影院在线免费观看 | 91丨九色丨蝌蚪丨老版 | 免费视频区 | 一区二区三区动漫 | 精品国产_亚洲人成在线 | 久久99国产视频 | 超碰人人超碰 | 欧美一区二区三区免费看 | 亚洲视频精选 | 久久久久欧美精品999 | av视屏在线 | 97人人精品| 国产麻豆视频在线观看 | 在线免费黄色毛片 | 精品久久久久久久久久国产 | 九九热精 | 日韩理论视频 | 97视频人人免费看 | 亚洲日韩欧美一区二区在线 | 最新日韩电影 | 91av免费在线观看 | 在线观看国产中文字幕 | 91精品国产九九九久久久亚洲 | 丁香婷婷在线观看 | 欧美小视频在线 | 久久av免费观看 | 又黄又爽的视频在线观看网站 | 婷婷日 | 人人狠狠 | 日本在线观看一区二区三区 | 色综合久久久久综合99 | 天天操综合 | 99久久婷婷国产精品综合 | 久福利 | 日韩精品一区二区三区高清免费 | 91精品色 | 国产精品 999 | 一区三区视频 | 探花国产在线 | 99久久久久久久久 | av激情五月 | 中文字幕在线免费观看视频 | 一区二区三区高清 | 在线观看精品一区 | 久久这里只有精品视频首页 | 综合激情 | 97精品国产97久久久久久久久久久久 | 91刺激视频 | 婷婷丁香花五月天 | 91亚洲欧美 | 手机看片1042 | 亚洲综合色播 | 久要激情网| 午夜久久福利视频 | 国产99在线免费 | 国产精品18久久久久久久久 | 97人人添人澡人人爽超碰动图 | 在线视频手机国产 | 97超碰人人澡人人 | 三级av在线免费观看 | 国产一区二区综合 | 黄网站app在线观看免费视频 | 91系列在线 | 黄色片免费电影 | 亚洲精品天天 | 亚洲成av片人久久久 | 日本丰满少妇免费一区 | 成年人免费电影在线观看 | 欧美韩日精品 | 中文字幕在线观看视频免费 | 日日干天天射 | 精品国产午夜 | 西西人体4444www高清视频 | 午夜久久久久久久久久影院 | 久久成人精品电影 | 精品夜夜嗨av一区二区三区 | 日韩最新理论电影 | 午夜精品一区二区三区在线视频 | 91av手机在线观看 | 国产亚洲婷婷 | 欧美日韩一区二区三区免费视频 | 在线a亚洲视频播放在线观看 | 日本久久久久久久久久久 | 午夜精品福利一区二区三区蜜桃 | 99久久精 | 91毛片在线 | 欧美一级在线 | 成人久久久电影 | 狠狠操狠狠操 | 丁香五月缴情综合网 | 成人国产精品 | 日韩免费久久 | av国产网站 | 国产色视频网站 | 麻豆传媒视频在线 | 天堂av一区二区 | 蜜臀av性久久久久蜜臀av | 婷婷99| 中文字幕日韩免费视频 | 国产又粗又硬又爽的视频 | www操操操| 911精品视频 | 手机av在线网站 | 高清精品久久 | 久久精品999| 日韩视频1区 | 开心色婷婷| 久久久久国产成人免费精品免费 | 色婷婷亚洲精品 | 国产手机在线观看视频 | 日韩二区三区在线 | 亚洲伦理中文字幕 | 天天翘av| 99色在线| 日韩久久久 | 麻豆一二三精选视频 | 国产一区二区三区视频在线 | 欧美视频一区二 | 伊人狠狠 | 国产亚洲婷婷免费 | 久久久久久久精 | 国产一区二区综合 | 超碰97中文| 天天天天射 | 丁香av在线 | 激情深爱.com| 成年人免费在线 | 国产一级片网站 | 精品国产精品久久一区免费式 | 国产婷婷久久 | 91成人蝌蚪 | 国产在线视频一区二区三区 | 日日爱网站| 91九色蝌蚪视频在线 | 五月天久久狠狠 | 九九九九九九精品任你躁 | 黄色毛片视频 | 亚洲综合色婷婷 | 日韩免费在线视频 | 成人国产精品免费 | 天天干.com| 亚洲成人家庭影院 | 国产三级午夜理伦三级 | 特级西西人体444是什么意思 | 国产精品免费一区二区 | aaawww| 精品欧美一区二区三区久久久 | 色欧美成人精品a∨在线观看 | 午夜电影中文字幕 | 免费观看一级特黄欧美大片 | 九热精品 | 日韩一区二区免费播放 | 91热视频| 一本色道久久综合亚洲二区三区 | 日韩中文字幕视频在线观看 | 欧美极度另类性三渗透 | 视频在线观看入口黄最新永久免费国产 | 一区二区三区在线观看免费视频 | 色综合久 | 美女黄频视频大全 | 在线成人短视频 | 亚洲五月花| 四虎影视8848dvd | 国产一二三四在线观看视频 | 成人免费在线电影 |