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

MySQL 二進制日志 binlog 核心知識點小結

開發(fā)
本文將從MySQL二進制日志bin.log基本概念、工作機制和一些常見的運用場景角度展開探討,希望對你有幫助。

binlog的概念和基本作用

bin log實際上是一個物理日志,當我們對某個數(shù)據(jù)頁進行修改操作時我們就會將這個操作寫到bin log中,當我們數(shù)據(jù)庫需要進行主備、主從復制等操作時,都可以基于bin log保證數(shù)據(jù)一致性。

binlog緩沖區(qū)

bin log緩沖區(qū)和我們的redo log和undo log緩沖區(qū)有所不同,redo log和undo log緩存都在存儲引擎的共享緩沖區(qū)緩沖區(qū)buffer pool中,而bin log則是為每個工作線程獨立分配一個內(nèi)存作為bin log緩沖區(qū):

bin log之所以是在每個線程中,原因有二:

  • 考慮到mysql-server要求所有存儲引擎對于bin.log都是兼容。
  • 將bin_log_buffer設置在每個線程/事務中還能保證并發(fā)操作的性能,避免為各個線程爭搶臨界緩沖區(qū)的沖突導致并發(fā)性能下降。

binlog對應的三種記錄格式

row:這種格式主要用于保證數(shù)據(jù)實時性的,例如我們執(zhí)行下面這段SQL

update table set time=now() where id=1;

如果我們將其存到bin log之后很長一段時間才提交事務,那么時間就會有所延遲,所以MySQL為了保證數(shù)據(jù)實時性,就會將寫入bin log中的SQL用row格式,如下圖所示,可以看到row格式的SQL語句時間是當前時間的具體值,并且where條件寫死了當前條件列,確保數(shù)據(jù)實時一致性:

當然這樣做的缺點也很明顯,如果涉及大批量操作,那么針對每條數(shù)據(jù)對應的都會生成對應的row語句,那么對于內(nèi)存的占用就很高,進行恢復和同步時的IO和SQL執(zhí)行時間也是非常不友好的。

stament:這種同步策略即執(zhí)行的SQL是什么,對應傳輸過去的時對應的語句就是什么樣的,這就會導致我們上文所說的一致性問題:

mixed:這種格式就是為了上述兩種方案的混合體,如果操作可能出現(xiàn)數(shù)據(jù)不一致問題則用row格式,反之使用stament格式。

binlog文件日志格式

我們可以通過下面這條SQL語句看到我們本地的bin log文件:

show binary logs;

輸出結果如下所示,可以看到bin log的格式基本都是mysql-bin.0000xxx:

mysql-bin.001606 440052 No
mysql-bin.001607 111520 No

binlog是如何完成寫入

當我們開始事務時,將修改寫入bin log cache中,一旦事務提交,就會將bin log通過write寫入到文件系統(tǒng)緩存的page cache中,然后根據(jù)我們配置的刷盤參數(shù)將cache內(nèi)容調(diào)用操作系統(tǒng)內(nèi)核方法fsync將結果寫入到bin log 物理文件中:

而調(diào)用系統(tǒng)函數(shù)fsync的實際是根據(jù)MySQL系統(tǒng)參數(shù)決定的,這個系統(tǒng)變量查詢SQL如下:

SHOW VARIABLES LIKE 'sync_binlog';

而sync_binlog值分別三種:

  • 0.當配置為了0時,每次事務提交都只會write,fsync調(diào)用時機是由系統(tǒng)決定的。
  • 1.當配置設置為1時,每次事務提交都會調(diào)用fsync。
  • N. 當配置為N,代表提交了N個事務之后就會將page cache中的數(shù)據(jù)通過fsync進行刷盤。

binlog和redolog的區(qū)別

這個問題我們可以從以下幾個場景來表述一下:

從使用場景來說:

  • bin log常用于數(shù)據(jù)災備或數(shù)據(jù)同步到其他異構程序中的場景。
  • redo log常用于故障恢復保證數(shù)據(jù)持久性。

從數(shù)據(jù)內(nèi)容來說:

  • redo log存儲的物理日志,即修改的數(shù)據(jù)內(nèi)容,對應的redo block結構體針對各種偏移量和修改涉及的頁都有及其復雜的涉及,這里就不多做贅述。
  • bin log則是記錄可以是statment語句也可以是原生修改的row,具體可以通過查看binlog_format知曉。

生成范圍:

  • bin log是MySQL server生成的事務日志,任何存儲引擎都可以使用
  • redo log只有innodb這個存儲引擎支持。

(實踐)基于flink cdc訂閱binlog同步數(shù)據(jù)

接下來我們就基于spring boot演示一下如何基于flink cdc訂閱bin.log完成db庫中的tb_1和tb_2的數(shù)據(jù)訂閱和同步:

之所以筆者使用flink cdc而不是canel大體有以下幾個原因:

  • flink cdc支持全量和增量同步以及斷點續(xù)傳等功能,尤其是斷點續(xù)傳這一點對于需要保證異構數(shù)據(jù)庫的數(shù)據(jù)一致性是非常好的。
  • 性能表現(xiàn)更出色,按照阿里云的說法:

我們將全增量一體化框架與 Debezium 1.6 版本做 簡單的 TPC-DS 讀取測試對比,customer 單表數(shù)據(jù)量 6500 萬,在 Flink CDC 用 8 個并發(fā)的情況下,吞吐提升了 6.8 倍,耗時僅 13 分鐘,得益于并發(fā)讀取的支持,如果用戶需要更快的讀取速度,用戶可以增加并發(fā)實現(xiàn)。

話不說我們給出基礎的集成步驟,首先是引入flink cdc和MySQL的依賴,這里筆者為了文章的簡練只給出的flink cdc相關的pom依賴:

<properties>
        <flink.version>1.13.6</flink.version>
    </properties>


<dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-clients_2.12</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-java</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.flink</groupId>
            <artifactId>flink-streaming-java_2.12</artifactId>
            <version>${flink.version}</version>
        </dependency>
        <!--mysql -cdc-->
        <dependency>
            <groupId>com.ververica</groupId>
            <artifactId>flink-connector-mysql-cdc</artifactId>
            <version>2.0.0</version>
        </dependency>

然后我們在yml或者properties文件中給出MySQL配置即可,然后我們聲明一個CdcInfo記錄從bin.log中同步的數(shù)據(jù):

@Data
publicclass CdcInfo {
    /**
     * 變更前數(shù)據(jù)
     */
    private JSONObject beforeData;
    /**
     * 變更后數(shù)據(jù)
     */
    private JSONObject afterData;

    private String operation;
    /**
     * binlog 文件名
     */
    private String binLogName;
    /**
     * binlog當前讀取點位
     */
    private Integer filePos;
    /**
     * 數(shù)據(jù)庫名
     */
    private String dbName;
    /**
     * 表名
     */
    private String tbName;
    /**
     * 變更時間
     */
    private Long changeTime;

}

然后我們編寫一個關于bin.log通知事件的監(jiān)聽,針對flink cdc配置筆者都基于CommandLineRunner 這個拓展點完成配置,這里面涉及眾多的flink cdc配置參數(shù),可以看到筆者的程序同步模式配置的是initial即啟動后會進行全量同步再進行增量同步,同時通過表達式db.tb_[1-2]+指明僅僅處理tb_1和tb_2表的數(shù)據(jù)更新變化。

@Component
publicclass MysqlCdcEventListener implements CommandLineRunner {

    //數(shù)據(jù)接收器用于應用架構更改和將更改數(shù)據(jù)寫入外部系統(tǒng)
    privatefinal CdcSink cdcSink;

    public MysqlCdcEventListener(CdcSink cdcSink) {
        this.cdcSink = cdcSink;
    }


    @Override
    public void run(String... args) throws Exception {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        //設置并行度
        env.setParallelism(Runtime.getRuntime().availableProcessors());


        DebeziumSourceFunction<CdcInfo> debeziumSource = buildDebeziumSource();


        DataStream<CdcInfo> streamSource = env
                .addSource(debeziumSource, "mysql-source")
                .setParallelism(1);
        //將流數(shù)據(jù)交給
        streamSource.addSink(cdcSink);
        env.execute("mysql-stream-cdc");
    }


    /**
     * 構造變更數(shù)據(jù)源
     */
    private DebeziumSourceFunction<CdcInfo> buildDebeziumSource() {

        Properties debeziumProperties = new Properties();
        //設置快照為無鎖
        debeziumProperties.put("snapshot.locking.mode", "none");

        return MySqlSource.<CdcInfo>builder()
                .hostname("xxxx")
                .port(3306)
                .databaseList("db")
                //監(jiān)聽db庫中的[1-2]表
                .tableList("db.tb_[1-2]+")
                .username("xxxx")
                .password("xxxx")
                //設置為 initial:在第一次啟動時對受監(jiān)視的數(shù)據(jù)庫表執(zhí)行初始快照,并繼續(xù)讀取最新的 binlog
                .startupOptions(StartupOptions.initial())
                //設置序列化配置
                .deserializer(new MysqlDeserialization())
                .serverTimeZone("GMT+8")
                .debeziumProperties(debeziumProperties)
                .build();
    }


}
  • 關于這些配置的信息建議讀者移步官方文檔的說明:https://nightlies.apache.org/flink/flink-cdc-docs-release-3.0/zh/
  • 相應的使用配置示例讀者也可以參考flink cdc對應的GitHub上的說明:https://github.com/gunnarmorling/flink-cdc-connectors

上文代碼示例中給出一個涉及反序列化生產(chǎn)CdcInfo的操作,筆者指明了MysqlDeserialization 這里也給出對應的源碼示例:

public class MysqlDeserialization implements DebeziumDeserializationSchema<CdcInfo> {

    publicstaticfinal String TS_MS = "ts_ms";
    publicstaticfinal String BIN_FILE = "file";
    publicstaticfinal String POS = "pos";
    publicstaticfinal String CREATE = "CREATE";
    publicstaticfinal String BEFORE = "before";
    publicstaticfinal String AFTER = "after";
    publicstaticfinal String SOURCE = "source";
    publicstaticfinal String UPDATE = "UPDATE";


    @Override
    public void deserialize(SourceRecord sourceRecord, Collector<CdcInfo> collector) {
        //獲取bin.log訂閱到的信息
        String topic = sourceRecord.topic();
        String[] fields = topic.split("\\.");
        String database = fields[1];
        String tableName = fields[2];
        Struct struct = (Struct) sourceRecord.value();
        final Struct source = struct.getStruct(SOURCE);
        CdcInfo tbCdcInfo = new CdcInfo();
        //獲取前后變化數(shù)據(jù)
        tbCdcInfo.setBeforeData(convert2JsonObj(struct, BEFORE));
        tbCdcInfo.setAfterData(convert2JsonObj(struct, AFTER));
        //5.獲取操作類型  CREATE UPDATE DELETE
        Envelope.Operation operation = Envelope.operationFor(sourceRecord);
        String type = operation.toString().toUpperCase();

        tbCdcInfo.setOperation(type);
        tbCdcInfo.setBinLogName(Optional.ofNullable(source.get(BIN_FILE)).map(Object::toString).orElse(""));
        tbCdcInfo.setFilePos(Optional.ofNullable(source.get(POS)).map(x -> Integer.parseInt(x.toString())).orElse(0));
        tbCdcInfo.setDbName(database);
        tbCdcInfo.setTbName(tableName);
        tbCdcInfo.setChangeTime(Optional.ofNullable(struct.get(TS_MS)).map(x -> Long.parseLong(x.toString())).orElseGet(System::currentTimeMillis));
        //7.輸出數(shù)據(jù)
        collector.collect(tbCdcInfo);
    }

    /**
     * 從原始數(shù)據(jù)獲取出變更之前或之后的數(shù)據(jù)
     */
    private JSONObject convert2JsonObj(Struct value, String fieldElement) {
        Struct element = value.getStruct(fieldElement);
        JSONObject jsonObject = new JSONObject();
        if (element != null) {
            Schema afterSchema = element.schema();
            List<Field> fieldList = afterSchema.fields();
            for (Field field : fieldList) {
                Object afterValue = element.get(field);
                jsonObject.put(field.name(), afterValue);
            }
        }
        return jsonObject;
    }


    @Override
    public TypeInformation<CdcInfo> getProducedType() {
        return TypeInformation.of(CdcInfo.class);
    }
}

此時我們啟動程序后針對數(shù)據(jù)表進行修改操作就會收到數(shù)據(jù)消息的訂閱了:

訂閱到的數(shù)據(jù):CdcInfo(beforeData={"id":1,"name":"xiaoming"}, afterData={"id":1,"name":"xiaoming1"}, operatinotallow=UPDATE, binLogName=binlog.000156, filePos=1256, dbName=db, tbName=tb_2, changeTime=1734622269654)
責任編輯:趙寧寧 來源: 寫代碼的SharkChili
相關推薦

2010-06-09 13:02:29

MySQL啟用二進制日

2010-10-13 15:45:23

MySQL二進制日志

2021-12-30 08:17:27

Springboot數(shù)據(jù)訪問DataSourceB

2025-01-07 14:10:46

SpringBoot開發(fā)Java

2020-11-06 00:50:16

JavaClassLoaderJVM

2021-01-15 08:35:49

Zookeeper

2025-05-19 10:00:00

MySQL數(shù)據(jù)庫InnoDB

2020-10-26 10:40:31

Axios前端攔截器

2021-01-06 13:52:19

zookeeper開源分布式

2024-11-04 09:00:00

Java開發(fā)

2025-03-26 11:30:40

2021-04-13 08:25:12

測試開發(fā)Java注解Spring

2024-04-23 14:25:16

Python備忘清單

2020-05-19 14:40:08

Linux互聯(lián)網(wǎng)核心

2018-08-21 10:05:59

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

2025-05-07 08:55:00

2025-07-09 09:05:00

2014-08-06 10:10:52

MariaDB二進制日志

2022-10-29 08:55:19

頁面react

2018-03-12 14:33:49

數(shù)據(jù)庫MySQL日志
點贊
收藏

51CTO技術棧公眾號

亚洲视频一二区| 丝袜脚交一区二区| 精品国产污网站| 国产精品国三级国产av| 久久精品偷拍视频| 日韩免费特黄一二三区| 欧美老肥妇做.爰bbww| 伊人色综合影院| 精品国产一级片| 在线欧美不卡| 亚洲男人av电影| 亚洲五月天综合| 日本高清在线观看wwwww色| 日韩精品1区2区3区| 最近免费中文字幕视频2019| 亚洲第一成肉网| 第一av在线| 国产午夜精品美女毛片视频| 国产剧情久久久久久| 久久免费在线观看视频| 亚洲日产av中文字幕| 欧美亚洲综合色| 黄黄视频在线观看| 少妇一区二区三区四区| 一本久道综合久久精品| 国产一区二区三区久久精品| 1314成人网| 亚洲永久av| 国产精品人成在线观看免费| 波多野结衣成人在线| 五月婷婷激情视频| 一区二区在线影院| 亚洲欧美三级在线| 亚洲一区二区三区观看| 久草免费在线视频| 中文字幕一区二区日韩精品绯色| 国产经品一区二区| 日韩国产成人在线| 国产精品99一区二区| 亚洲欧美日韩第一区| 麻豆精品国产传媒| 欧美日韩视频免费观看| 亚洲二区在线观看| 老司机av福利| 色视频免费在线观看| 日日夜夜一区二区| 久久久亚洲精选| 日本伦理一区二区三区| 欧美aaaaa级| 欧美一区二区三区四区五区| 亚洲乱码国产一区三区| 美女日批视频在线观看| 国产精品国产自产拍高清av王其| 加勒比在线一区二区三区观看 | 亚洲精品国产视频| 日本亚洲导航| 水中色av综合| 成人午夜激情片| 成人信息集中地欧美| 久久久久久久久黄色| 亚洲成人资源| 欧美国产高跟鞋裸体秀xxxhd| 国产性猛交xx乱| 久久av中文| 日韩大片在线观看视频| 一个色综合久久| 成人福利片在线| 在线观看www91| av免费中文字幕| 黄在线观看免费网站ktv| 亚洲男人天堂av| 亚洲小说欧美另类激情| 色综合久久影院| 中文成人av在线| 日本精品一区二区三区视频| 日韩av资源站| 久久综合九色综合欧美98| 精品国产一区二区三区麻豆免费观看完整版 | 蜜臀av色欲a片无码精品一区 | 法国空姐在线观看免费| a级影片在线观看| 亚洲激情在线播放| 亚洲精品天堂成人片av在线播放 | 欧美成人中文| 中文字幕久热精品在线视频| 美女100%无挡| 韩日一区二区三区| 国产亚洲欧美日韩精品| 国产肥白大熟妇bbbb视频| 国产图片一区| 精品国产91洋老外米糕| 欧美熟妇精品一区二区蜜桃视频| 2020最新国产精品| 亚洲精品白浆高清久久久久久| chinese麻豆新拍video| 亚洲最好看的视频| 在线电影av不卡网址| 中文字幕在线1| 99久久激情| 欧美成年人视频网站| 久视频在线观看| 99在线观看免费视频精品观看| 97国产在线视频| 国产精品免费精品一区| 免费在线观看日韩欧美| 成人精品视频久久久久| www.色婷婷.com| 91尤物视频在线观看| 欧美影视一区二区| 秋霞影院午夜丰满少妇在线视频| 一区免费观看视频| 激情五月婷婷六月| 亚洲高清黄色| 欧美精品vⅰdeose4hd| 亚洲欧美综合视频| 少妇精品久久久| 欧美成人精品xxx| 依依成人综合网| 麻豆国产一区二区| 国产精品国产三级欧美二区| 精品视频三区| 尤物在线观看一区| 你真棒插曲来救救我在线观看| 国产精品久久久久av电视剧| 日韩一区二区三区高清免费看看| 好吊日免费视频| 91麻豆国产自产在线观看亚洲 | 中出视频在线观看| 欧美aaaa视频| 97激碰免费视频| 在线中文字幕网站| 成人禁用看黄a在线| 深夜福利成人| 国产精品电影| 在线播放欧美女士性生活| 加勒比精品视频| 欧美一区高清| 国产精品视频导航| 亚洲欧美日韩动漫| 亚洲丝袜制服诱惑| 女人另类性混交zo| 亚洲精品v亚洲精品v日韩精品| 亚洲成av人乱码色午夜| 国产精品视频看看| 日韩电影在线免费观看| 久久久久久久久一区| 青草在线视频| 91精品国产色综合久久不卡电影 | 免费在线黄网站| 全球中文成人在线| 亚洲人成人99网站| 欧美色图一区二区| 麻豆精品视频在线| 欧美色欧美亚洲另类七区| 女人黄色免费在线观看| 欧美日高清视频| 亚洲ⅴ国产v天堂a无码二区| 一区二区三区成人精品| 国产综合视频在线观看| 懂色av中文在线| 一本色道久久加勒比精品| 香蕉视频污视频| 欧美视频不卡| 97se在线视频| 日本免费中文字幕在线| 欧美色大人视频| 成人激情五月天| 久久久久久色| 国产精品免费一区二区三区在线观看 | 久久香蕉国产线看观看网| 中文字幕免费视频观看| 久久久久国产精品麻豆ai换脸| 夜夜添无码一区二区三区| av一级亚洲| 欧美日韩成人在线播放| 99久久久国产精品无码网爆| 亚洲欧美日韩综合aⅴ视频| 性生生活大片免费看视频| 婷婷激情综合| 亚洲一区二区在线| 欧美私人网站| 欧美一级久久久| 久久久久香蕉视频| av在线这里只有精品| 免费 成 人 黄 色| 久久爱www成人| 国产精品免费一区二区三区都可以| 欧美美女搞黄| 欧美日韩综合色| 91n在线视频| 国产精品羞羞答答xxdd| 激情小视频网站| 好吊妞视频这里有精品| 欧美高清无遮挡| 西西人体44www大胆无码| 色综合天天性综合| 日韩欧美在线视频播放| 国产精品99久久不卡二区| 亚洲乱码日产精品bd在线观看| 风间由美中文字幕在线看视频国产欧美| 久久久久免费精品国产| 色就是色亚洲色图| 欧美日韩你懂得| 午夜写真片福利电影网| av不卡在线播放| 激情网站五月天| 中文视频一区| 精品无人区一区二区三区竹菊| 午夜精品久久久久久久久久蜜桃| 日韩在线中文字| 国产视频一二三四区| 午夜精品久久久久影视| 又色又爽的视频| 粉嫩aⅴ一区二区三区四区| 精品少妇人欧美激情在线观看| 美女少妇全过程你懂的久久 | www.精品| 乱亲女秽乱长久久久| 国产suv精品一区二区69| 欧美日韩精品在线| frxxee中国xxx麻豆hd| 99国产精品久久久| 天天操狠狠操夜夜操| 国产欧美大片| 日韩免费电影一区二区| 日韩精品三级| 国产精品91视频| 国产后进白嫩翘臀在线观看视频| 日韩av在线天堂网| 97超视频在线观看| 欧美日韩一区二区在线| 欧美成人片在线观看| 亚洲国产精品激情在线观看| 搡的我好爽在线观看免费视频| 久久精品中文| 国产伦精品一区二区三区四区视频_| 成人激情电影在线| 女女同性女同一区二区三区91| 国产一区二区三区| 国产精品久久久久久网站| 欧美激情20| 欧美人与性动交a欧美精品| 高清av在线| 日韩电影视频免费| 不卡视频在线播放| 欧美日韩在线免费视频| 亚洲自拍一区在线观看| 亚洲一区二区在线视频| av激情在线观看| 中文字幕不卡三区| 受虐m奴xxx在线观看| 99精品视频在线播放观看| 精品无码av一区二区三区不卡| 日本免费在线视频不卡一不卡二| 欧美二区在线视频| 在线观看视频免费一区二区三区| 婷婷久久五月天| 女人丝袜激情亚洲| 久久er99热精品一区二区三区 | 夜夜夜久久久| 欧美日韩dvd| 久久久久久久久久久久久久久久久久| 日韩美女一区| 精品国产精品| 久久艹中文字幕| 日韩欧美ww| 国产在线一区二区三区欧美| 盗摄系列偷拍视频精品tp| 亚洲一区二区中文| 日本精品视频| 9a蜜桃久久久久久免费| 亚洲电影一区| 91在线精品观看| 91综合久久爱com| 国产精品视频入口| 窝窝社区一区二区| 蜜桃日韩视频| 精品久久久久久久久久久下田| 日韩精品久久一区二区三区| 欧美午夜精品一区二区三区电影| 精品国产第一页| 特黄特色欧美大片| 欧美日韩综合另类| 99久久视频| 91视频 - 88av| 国产日产高清欧美一区二区三区| www国产精品内射老熟女| 久久激情网站| 久久综合久久综合这里只有精品| 亚州精品视频| 99热这里只有精品7| 亚洲精选91| 一级片视频免费观看| 高潮精品一区videoshd| 法国空姐电影在线观看| 一区二区三区精品久久久| 国产成人无码av| 日韩欧美高清dvd碟片| 裸体xxxx视频在线| 欧美日本中文字幕| 久久精品97| 国产原创精品| 99久久婷婷| 男人插女人下面免费视频| 高清视频一区二区| 97在线观看视频免费| 日韩欧美国产一区二区| 国产福利免费视频| 中文字幕无线精品亚洲乱码一区 | 亚洲综合色网站| 在线免费a视频| 精品亚洲aⅴ在线观看| 中文字幕伦理免费在线视频 | 日韩精品一区二区三区中文 | 黑人与娇小精品av专区| 最近中文字幕免费观看| 日韩精品在线观| 亚洲深夜福利网站| 精品日韩在线播放| 2001个疯子在线观看| 国产成人精品久久| 精品国产18久久久久久洗澡| 制服诱惑一区| 日韩 欧美一区二区三区| 亚洲精品第二页| 一区二区在线观看视频| 一级爱爱免费视频| 亚洲欧洲国产一区| 理论片午夜视频在线观看| 亚洲最大福利视频| 99成人超碰| 久久久久久蜜桃一区二区| 久久久一区二区三区捆绑**| 日本一级淫片色费放| 日韩欧美在线网站| 欧美成人高清在线| 国产精品免费网站| 青青草国产免费一区二区下载| 久久国产亚洲精品无码| 顶级嫩模精品视频在线看| 黄色一级大片在线免费观看| 欧美日韩中文国产| www视频在线观看免费| 日韩免费av在线| 九九热爱视频精品视频| 国产成人久久婷婷精品流白浆| www.日韩大片| 欧美videossex极品| 精品无码久久久久久国产| gay欧美网站| 青青草成人激情在线| 天堂成人国产精品一区| 国产真人做爰视频免费| 欧美日韩一区二区三区视频| 日韩免费网站| 91久久精品日日躁夜夜躁国产| 99视频精品全部免费在线视频| 欧美成人乱码一二三四区免费| 国产精品久久久久aaaa樱花 | 国产精品1000部啪视频| 欧美日韩一区二区在线| 日本成人一区| 国产精品毛片a∨一区二区三区|国 | 久久精品国产第一区二区三区最新章节| 在线看片日韩| 精品少妇一区二区三区免费观 | 一区二区美女视频| 美乳少妇欧美精品| 国产成人高清精品免费5388| 少妇人妻在线视频| 国产日产亚洲精品系列| 在线不卡免费视频| 久久成年人视频| xxxx日韩| 无码aⅴ精品一区二区三区浪潮| 国产亚洲制服色| 91美女精品网站| 国模吧一区二区| 精品高清在线| www.偷拍.com| 欧美视频中文字幕在线| 成人网视频在线观看| 亚洲va电影大全| 野花国产精品入口| 亚洲 欧美 国产 另类| 精品日产卡一卡二卡麻豆| 亚洲校园激情春色| 91xxx视频| 久久久一区二区三区捆绑**| 国产免费无遮挡| 欧美一区二三区| 91久久国产| 粉嫩av懂色av蜜臀av分享| 欧美日韩一区二区在线观看| 黄色成人在线网| 亚洲国产午夜伦理片大全在线观看网站 | 日本亚洲不卡| 欧美一级小视频| 日韩欧美中文免费| 中文在线观看免费|