<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          DorisDB vs ClickHouse 查詢測試

          共 22817字,需瀏覽 46分鐘

           ·

          2021-06-16 11:50

          測試方法

          為了方便用戶快速的了解DorisDB的性能指標,這里我們提供了一個標準的Star schema benchmark的測試方法和工具僅供參考。

          Star schema benchmark(以下簡稱SSB)是學術界和工業(yè)界廣泛使用的一個星型模型測試集(來源論文),通過這個測試集合也可以容易的和其他OLAP產(chǎn)品進行性能對比。

          測試數(shù)據(jù)

          表名行數(shù)解釋
          lineorder6億SSB商品訂單表
          customer300萬SSB客戶表
          part140萬SSB 零部件表
          supplier20萬SSB 供應商表
          dates2556日期表
          lineorder_flat6億SSB打平后的寬表

          測試數(shù)據(jù)環(huán)境

          主機資源:

          主機內(nèi)存CPU
          CentOS128G16core

          DorisDB使用資源:

          FE 單臺,BE 5臺 部署

          內(nèi)存CPU數(shù)量
          80G16core6

          ClickHouse使用資源:

          內(nèi)存CPU數(shù)量
          80G16core1

          說明:由于資源原因,DorisDB、ClickHouse集群和上同時部署了CDH集群和其他組件,所以該測試并不能100%代表DorisDB、ClickHouse的性能。

          測試結(jié)果

          單表測試結(jié)果如下

          img

          多表測試結(jié)果如下

          img

          測試過程

          DorisDB

          下載ssb-poc工具包并編譯

          wget http://dorisdb-public.oss-cn-zhangjiakou.aliyuncs.com/ssb-poc-0.9.zip
          unzip ssb-poc-0.9.zip
          cd ssb-poc
          make && make install
          #所有相關工具安裝到output目錄

          生成數(shù)據(jù)

          cd output 
          # 運行生成數(shù)據(jù)的腳本
          bin/gen-ssb.sh 100 data_dir

          建表

          CREATE TABLE IF NOT EXISTS `lineorder` (
            `lo_orderkey` int(11NOT NULL COMMENT "",
            `lo_linenumber` int(11NOT NULL COMMENT "",
            `lo_custkey` int(11NOT NULL COMMENT "",
            `lo_partkey` int(11NOT NULL COMMENT "",
            `lo_suppkey` int(11NOT NULL COMMENT "",
            `lo_orderdate` int(11NOT NULL COMMENT "",
            `lo_orderpriority` varchar(16NOT NULL COMMENT "",
            `lo_shippriority` int(11NOT NULL COMMENT "",
            `lo_quantity` int(11NOT NULL COMMENT "",
            `lo_extendedprice` int(11NOT NULL COMMENT "",
            `lo_ordtotalprice` int(11NOT NULL COMMENT "",
            `lo_discount` int(11NOT NULL COMMENT "",
            `lo_revenue` int(11NOT NULL COMMENT "",
            `lo_supplycost` int(11NOT NULL COMMENT "",
            `lo_tax` int(11NOT NULL COMMENT "",
            `lo_commitdate` int(11NOT NULL COMMENT "",
            `lo_shipmode` varchar(11NOT NULL COMMENT ""
          ENGINE=OLAP
          DUPLICATE KEY(`lo_orderkey`)
          COMMENT "OLAP"
          DISTRIBUTED BY HASH(`lo_orderkey`) BUCKETS 96
          PROPERTIES (
          "replication_num" = "1",
          "colocate_with" = "group1",
          "in_memory" = "false",
          "storage_format" = "DEFAULT"
          );
            
            
          CREATE TABLE IF NOT EXISTS `customer` (
            `c_custkey` int(11NOT NULL COMMENT "",
            `c_name` varchar(26NOT NULL COMMENT "",
            `c_address` varchar(41NOT NULL COMMENT "",
            `c_city` varchar(11NOT NULL COMMENT "",
            `c_nation` varchar(16NOT NULL COMMENT "",
            `c_region` varchar(13NOT NULL COMMENT "",
            `c_phone` varchar(16NOT NULL COMMENT "",
            `c_mktsegment` varchar(11NOT NULL COMMENT ""
          ENGINE=OLAP
          DUPLICATE KEY(`c_custkey`)
          COMMENT "OLAP"
          DISTRIBUTED BY HASH(`c_custkey`) BUCKETS 12
          PROPERTIES (
          "replication_num" = "1",
          "colocate_with" = "groupa2",
          "in_memory" = "false",
          "storage_format" = "DEFAULT"
          );
            
            
          CREATE TABLE IF NOT EXISTS `dates` (
            `d_datekey` int(11NOT NULL COMMENT "",
            `d_date` varchar(20NOT NULL COMMENT "",
            `d_dayofweek` varchar(10NOT NULL COMMENT "",
            `d_month` varchar(11NOT NULL COMMENT "",
            `d_year` int(11NOT NULL COMMENT "",
            `d_yearmonthnum` int(11NOT NULL COMMENT "",
            `d_yearmonth` varchar(9NOT NULL COMMENT "",
            `d_daynuminweek` int(11NOT NULL COMMENT "",
            `d_daynuminmonth` int(11NOT NULL COMMENT "",
            `d_daynuminyear` int(11NOT NULL COMMENT "",
            `d_monthnuminyear` int(11NOT NULL COMMENT "",
            `d_weeknuminyear` int(11NOT NULL COMMENT "",
            `d_sellingseason` varchar(14NOT NULL COMMENT "",
            `d_lastdayinweekfl` int(11NOT NULL COMMENT "",
            `d_lastdayinmonthfl` int(11NOT NULL COMMENT "",
            `d_holidayfl` int(11NOT NULL COMMENT "",
            `d_weekdayfl` int(11NOT NULL COMMENT ""
          ENGINE=OLAP
          DUPLICATE KEY(`d_datekey`)
          COMMENT "OLAP"
          DISTRIBUTED BY HASH(`d_datekey`) BUCKETS 1
          PROPERTIES (
          "replication_num" = "1",
          "in_memory" = "false",
          "colocate_with" = "groupa3",
          "storage_format" = "DEFAULT"
          );
            
           CREATE TABLE IF NOT EXISTS `supplier` (
            `s_suppkey` int(11NOT NULL COMMENT "",
            `s_name` varchar(26NOT NULL COMMENT "",
            `s_address` varchar(26NOT NULL COMMENT "",
            `s_city` varchar(11NOT NULL COMMENT "",
            `s_nation` varchar(16NOT NULL COMMENT "",
            `s_region` varchar(13NOT NULL COMMENT "",
            `s_phone` varchar(16NOT NULL COMMENT ""
          ENGINE=OLAP
          DUPLICATE KEY(`s_suppkey`)
          COMMENT "OLAP"
          DISTRIBUTED BY HASH(`s_suppkey`) BUCKETS 12
          PROPERTIES (
          "replication_num" = "1",
          "colocate_with" = "groupa4",
          "in_memory" = "false",
          "storage_format" = "DEFAULT"
          );
            
          CREATE TABLE IF NOT EXISTS `part` (
            `p_partkey` int(11NOT NULL COMMENT "",
            `p_name` varchar(23NOT NULL COMMENT "",
            `p_mfgr` varchar(7NOT NULL COMMENT "",
            `p_category` varchar(8NOT NULL COMMENT "",
            `p_brand` varchar(10NOT NULL COMMENT "",
            `p_color` varchar(12NOT NULL COMMENT "",
            `p_type` varchar(26NOT NULL COMMENT "",
            `p_size` int(11NOT NULL COMMENT "",
            `p_container` varchar(11NOT NULL COMMENT ""
          ENGINE=OLAP
          DUPLICATE KEY(`p_partkey`)
          COMMENT "OLAP"
          DISTRIBUTED BY HASH(`p_partkey`) BUCKETS 12
          PROPERTIES (
          "replication_num" = "1",
          "colocate_with" = "groupa5",
          "in_memory" = "false",
          "storage_format" = "DEFAULT"
          );
            
          CREATE TABLE IF NOT EXISTS `lineorder_flat` (
            `LO_ORDERKEY` int(11NOT NULL COMMENT "",
            `LO_ORDERDATE` date NOT NULL COMMENT "",
            `LO_LINENUMBER` tinyint(4NOT NULL COMMENT "",
            `LO_CUSTKEY` int(11NOT NULL COMMENT "",
            `LO_PARTKEY` int(11NOT NULL COMMENT "",
            `LO_SUPPKEY` int(11NOT NULL COMMENT "",
            `LO_ORDERPRIORITY` varchar(100NOT NULL COMMENT "",
            `LO_SHIPPRIORITY` tinyint(4NOT NULL COMMENT "",
            `LO_QUANTITY` tinyint(4NOT NULL COMMENT "",
            `LO_EXTENDEDPRICE` int(11NOT NULL COMMENT "",
            `LO_ORDTOTALPRICE` int(11NOT NULL COMMENT "",
            `LO_DISCOUNT` tinyint(4NOT NULL COMMENT "",
            `LO_REVENUE` int(11NOT NULL COMMENT "",
            `LO_SUPPLYCOST` int(11NOT NULL COMMENT "",
            `LO_TAX` tinyint(4NOT NULL COMMENT "",
            `LO_COMMITDATE` date NOT NULL COMMENT "",
            `LO_SHIPMODE` varchar(100NOT NULL COMMENT "",
            `C_NAME` varchar(100NOT NULL COMMENT "",
            `C_ADDRESS` varchar(100NOT NULL COMMENT "",
            `C_CITY` varchar(100NOT NULL COMMENT "",
            `C_NATION` varchar(100NOT NULL COMMENT "",
            `C_REGION` varchar(100NOT NULL COMMENT "",
            `C_PHONE` varchar(100NOT NULL COMMENT "",
            `C_MKTSEGMENT` varchar(100NOT NULL COMMENT "",
            `S_NAME` varchar(100NOT NULL COMMENT "",
            `S_ADDRESS` varchar(100NOT NULL COMMENT "",
            `S_CITY` varchar(100NOT NULL COMMENT "",
            `S_NATION` varchar(100NOT NULL COMMENT "",
            `S_REGION` varchar(100NOT NULL COMMENT "",
            `S_PHONE` varchar(100NOT NULL COMMENT "",
            `P_NAME` varchar(100NOT NULL COMMENT "",
            `P_MFGR` varchar(100NOT NULL COMMENT "",
            `P_CATEGORY` varchar(100NOT NULL COMMENT "",
            `P_BRAND` varchar(100NOT NULL COMMENT "",
            `P_COLOR` varchar(100NOT NULL COMMENT "",
            `P_TYPE` varchar(100NOT NULL COMMENT "",
            `P_SIZE` tinyint(4NOT NULL COMMENT "",
            `P_CONTAINER` varchar(100NOT NULL COMMENT ""
          ENGINE=OLAP
          DUPLICATE KEY(`LO_ORDERKEY`)
          COMMENT "OLAP"
          DISTRIBUTED BY HASH(`LO_ORDERKEY`) BUCKETS 192
          PROPERTIES (
          "replication_num" = "1",
          "colocate_with" = "groupxx1",
          "in_memory" = "false",
          "storage_format" = "DEFAULT"
          );

          導入數(shù)據(jù)

          通過stream load

          #執(zhí)行導入數(shù)據(jù)的腳本`
          bin /stream_load.sh data_dir
          生成ssb單表數(shù)據(jù)
          bin/flat_insert.sh

          查詢

          單表查詢

          測試ssb單表查詢(SQL 參見 share/ssb_test/sql/ssb-flat/)

          bin/benchmark.sh -p -d ssb-flat

          查詢結(jié)果:

          image2021-4-16_16-50-49.png
          多表查詢

          測試ssb多表查詢 (SQL 參見 share/ssb_test/sql/ssb/)

          bin/benchmark.sh -p -d ssb

          查詢結(jié)果

          image2021-4-16_17-3-4.png

          Clickhouse

          下載安裝 dbgen

          git clone https://github.com/vadimtk/ssb-dbgen.git 

          cd ssb-dbgen make

          生成數(shù)據(jù)

          ./dbgen -s 1000 -T c 
          ./dbgen -s 1000 -T l 
          ./dbgen -s 1000 -T p 
          ./dbgen -s 1000 -T s 
          ./dbgen -s 1000 -T d

          在ClickHouse中創(chuàng)建表

          CREATE TABLE test.customer(C_CUSTKEY UInt32,C_NAME String,C_ADDRESS String,C_CITY LowCardinality (String),C_NATION LowCardinality (String),C_REGION LowCardinality (String),C_PHONE String,C_MKTSEGMENT LowCardinality (String))ENGINE = MergeTree ORDER BY (C_CUSTKEY);
          CREATE TABLE test.lineorder (LO_ORDERKEY UInt32,LO_LINENUMBER UInt8,LO_CUSTKEY UInt32,LO_PARTKEY UInt32,LO_SUPPKEY UInt32,LO_ORDERDATE Date,LO_ORDERPRIORITY LowCardinality (String),LO_SHIPPRIORITY UInt8,LO_QUANTITY UInt8,LO_EXTENDEDPRICE UInt32,LO_ORDTOTALPRICE UInt32,LO_DISCOUNT UInt8,LO_REVENUE UInt32,LO_SUPPLYCOST UInt32,LO_TAX UInt8,LO_COMMITDATE Date,LO_SHIPMODE LowCardinality (String) ) ENGINE = MergeTree PARTITION BY toYear (LO_ORDERDATE) ORDER BY(LO_ORDERDATE, LO_ORDERKEY);
          CREATE TABLE test.part (P_PARTKEY UInt32,P_NAME String,P_MFGR LowCardinality (String),P_CATEGORY LowCardinality (String),P_BRAND LowCardinality (String),P_COLOR LowCardinality (String),P_TYPE LowCardinality (String),P_SIZE UInt8,P_CONTAINER LowCardinality (String) ) ENGINE = MergeTree ORDER BY P_PARTKEY;
          CREATE TABLE test.supplier (S_SUPPKEY UInt32,S_NAME String,S_ADDRESS String,S_CITY LowCardinality (String),S_NATION LowCardinality (String),S_REGION LowCardinality (String),S_PHONE StringENGINE = MergeTree ORDER BY S_SUPPKEY;
          CREATE TABLE test.date(D_DATEKEY UInt32,D_DATE String,D_DAYOFWEEK String,D_MONTH String,D_YEAR UInt32,D_YEARMONTHNUM UInt32,D_YEARMONTH String,D_DAYNUMINWEEK UInt32,D_DAYNUMINMONTH UInt32,D_DAYNUMINYEAR UInt32,D_MONTHNUMINYEAR UInt32,D_WEEKNUMINYEAR UInt32,D_SELLINGSEASON String,D_LASTDAYINWEEKFL UInt32,D_LASTDAYINMONTHFL UInt32,D_HOLIDAYFL UInt32,D_WEEKDAYFL UInt32) ENGINE = MergeTree ORDER BY D_DATEKEY;

          導入數(shù)據(jù)

          clickhouse-client -h prd-worker05 --port=9002 --query "INSERT INTO test.customer FORMAT CSV" < customer.tbl clickhouse-client -h prd-worker05 --port=9002 --query "INSERT INTO test.part FORMAT CSV" < part.tbl clickhouse-client -h prd-worker05 --port=9002 --query "INSERT INTO test.supplier FORMAT CSV" < supplier.tbl clickhouse-client -h prd-worker05 --port=9002 --query "INSERT INTO test.lineorder FORMAT CSV" < lineorder.tbl clickhouse-client -h prd-worker05 --port=9002 --query "INSERT INTO test.dates FORMAT CSV" < date.tbl

          將"星型模式"轉(zhuǎn)換為非規(guī)范化的"平面模式"

          set max_memory_usage_for_all_queries=80000000000; 
          set max_memory_usage=80000000000; 
          set max_bytes_before_external_group_by=40000000000; 

          CREATE TABLE lineorder_flat ENGINE = MergeTree PARTITION BY toYear(LO_ORDERDATE) ORDER BY (LO_ORDERDATE, LO_ORDERKEY) AS SELECT l.LO_ORDERKEY AS LO_ORDERKEY,l.LO_LINENUMBER AS LO_LINENUMBER,l.LO_CUSTKEY AS LO_CUSTKEY,l.LO_PARTKEY AS LO_PARTKEY,l.LO_SUPPKEY AS LO_SUPPKEY,l.LO_ORDERDATE AS LO_ORDERDATE,l.LO_ORDERPRIORITY AS LO_ORDERPRIORITY,l.LO_SHIPPRIORITY AS LO_SHIPPRIORITY,l.LO_QUANTITY AS LO_QUANTITY,l.LO_EXTENDEDPRICE AS LO_EXTENDEDPRICE,l.LO_ORDTOTALPRICE AS LO_ORDTOTALPRICE,l.LO_DISCOUNT AS LO_DISCOUNT,l.LO_REVENUE AS LO_REVENUE,l.LO_SUPPLYCOST AS LO_SUPPLYCOST,l.LO_TAX AS LO_TAX,l.LO_COMMITDATE AS LO_COMMITDATE,l.LO_SHIPMODE AS LO_SHIPMODE,c.C_NAME AS C_NAME,c.C_ADDRESS AS C_ADDRESS,c.C_CITY AS C_CITY,c.C_NATION AS C_NATION,c.C_REGION AS C_REGION,c.C_PHONE AS C_PHONE,c.C_MKTSEGMENT AS C_MKTSEGMENT,s.S_NAME AS S_NAME,s.S_ADDRESS AS S_ADDRESS,s.S_CITY AS S_CITY,s.S_NATION AS S_NATION,s.S_REGION AS S_REGION,s.S_PHONE AS S_PHONE,p.P_NAME AS P_NAME,p.P_MFGR AS P_MFGR,p.P_CATEGORY AS P_CATEGORY,p.P_BRAND AS P_BRAND,p.P_COLOR AS P_COLOR,p.P_TYPE AS P_TYPE,p.P_SIZE AS P_SIZE,p.P_CONTAINER AS P_CONTAINER FROM lineorder AS l INNER JOIN customer AS c ON c.C_CUSTKEY = l.LO_CUSTKEY INNER JOIN supplier AS s ON s.S_SUPPKEY = l.LO_SUPPKEY INNER JOIN part AS p ON p.P_PARTKEY = l.LO_PARTKEY;

          查詢:

          Q1.1

          SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE toYear(LO_ORDERDATE) = 1993 AND LO_DISCOUNT BETWEEN 1 AND 3 AND LO_QUANTITY < 25;

          Q1.2

          SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue FROM lineorder_flat WHERE toYYYYMM(LO_ORDERDATE) = 199401 AND LO_DISCOUNT BETWEEN 4 AND 6 AND LO_QUANTITY BETWEEN 26 AND 35;

          Q1.3

          SELECT sum(LO_EXTENDEDPRICE * LO_DISCOUNT) AS revenue
          FROM lineorder_flat
          WHERE toISOWeek(LO_ORDERDATE) = 6 AND toYear(LO_ORDERDATE) = 1994
            AND LO_DISCOUNT BETWEEN 5 AND 7 AND LO_QUANTITY BETWEEN 26 AND 35;

          Q2.1

          SELECT
             sum(LO_REVENUE),
             toYear(LO_ORDERDATE) AS year,
             P_BRAND
          FROM lineorder_flat
          WHERE P_CATEGORY = 'MFGR#12' AND S_REGION = 'AMERICA'
          GROUP BY
              year,
             P_BRAND
          ORDER BY
              year,
             P_BRAND;

          Q2.2

          SELECT
             sum(LO_REVENUE),
             toYear(LO_ORDERDATE) AS year,
             P_BRAND
          FROM lineorder_flat
          WHERE P_BRAND >= 'MFGR#2221' AND P_BRAND <= 'MFGR#2228' AND S_REGION = 'ASIA'
          GROUP BY
              year,
             P_BRAND
          ORDER BY
              year,
             P_BRAND;

          Q2.3

          SELECT
             sum(LO_REVENUE),
             toYear(LO_ORDERDATE) AS year,
             P_BRAND
          FROM lineorder_flat
          WHERE P_BRAND = 'MFGR#2239' AND S_REGION = 'EUROPE'
          GROUP BY
              year,
             P_BRAND
          ORDER BY
              year,
             P_BRAND;

          Q3.1

          SELECT
             C_NATION,
             S_NATION,
             toYear(LO_ORDERDATE) AS year,
             sum(LO_REVENUE) AS revenue
          FROM lineorder_flat
          WHERE C_REGION = 'ASIA' AND S_REGION = 'ASIA' AND year >= 1992 AND year <= 1997
          GROUP BY
             C_NATION,
             S_NATION,
              year
          ORDER BY
              year ASC,
             revenue DESC;

          Q3.2

          SELECT
             C_CITY,
             S_CITY,
             toYear(LO_ORDERDATE) AS year,
             sum(LO_REVENUE) AS revenue
          FROM lineorder_flat
          WHERE C_NATION = 'UNITED STATES' AND S_NATION = 'UNITED STATES' AND year >= 1992 AND year <= 1997
          GROUP BY
             C_CITY,
             S_CITY,
              year
          ORDER BY
              year ASC,
             revenue DESC;

          Q3.3

          SELECT
             C_CITY,
             S_CITY,
             toYear(LO_ORDERDATE) AS year,
             sum(LO_REVENUE) AS revenue
          FROM lineorder_flat
          WHERE (C_CITY = 'UNITED KI1' OR C_CITY = 'UNITED KI5') AND (S_CITY = 'UNITED KI1' OR S_CITY = 'UNITED KI5') AND year >= 1992 AND year <= 1997
          GROUP BY
             C_CITY,
             S_CITY,
              year
          ORDER BY
              year ASC,
             revenue DESC;

          Q3.4

          SELECT
             C_CITY,
             S_CITY,
             toYear(LO_ORDERDATE) AS year,
             sum(LO_REVENUE) AS revenue
          FROM lineorder_flat
          WHERE (C_CITY = 'UNITED KI1' OR C_CITY = 'UNITED KI5') AND (S_CITY = 'UNITED KI1' OR S_CITY = 'UNITED KI5') AND toYYYYMM(LO_ORDERDATE) = 199712
          GROUP BY
             C_CITY,
             S_CITY,
              year
          ORDER BY
              year ASC,
             revenue DESC;

          Q4.1

          SELECT
             toYear(LO_ORDERDATE) AS year,
             C_NATION,
             sum(LO_REVENUE - LO_SUPPLYCOST) AS profit
          FROM lineorder_flat
          WHERE C_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND (P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2')
          GROUP BY
              year,
             C_NATION
          ORDER BY
              year ASC,
             C_NATION ASC;

          Q4.2

          SELECT
             toYear(LO_ORDERDATE) AS year,
             S_NATION,
             P_CATEGORY,
             sum(LO_REVENUE - LO_SUPPLYCOST) AS profit
          FROM lineorder_flat
          WHERE C_REGION = 'AMERICA' AND S_REGION = 'AMERICA' AND (year = 1997 OR year = 1998) AND (P_MFGR = 'MFGR#1' OR P_MFGR = 'MFGR#2')
          GROUP BY
              year,
             S_NATION,
             P_CATEGORY
          ORDER BY
              year ASC,
             S_NATION ASC,
             P_CATEGORY ASC;

          Q4.3

          SELECT
             toYear(LO_ORDERDATE) AS year,
             S_CITY,
             P_BRAND,
             sum(LO_REVENUE - LO_SUPPLYCOST) AS profit
          FROM lineorder_flat
          WHERE S_NATION = 'UNITED STATES' AND (year = 1997 OR year = 1998) AND P_CATEGORY = 'MFGR#14'
          GROUP BY
              year,
             S_CITY,
             P_BRAND
          ORDER BY
              year ASC,
             S_CITY ASC,
             P_BRAND ASC;

          查詢結(jié)果

          單表查詢結(jié)果
          img
          多表查詢結(jié)果


          如果你有更多問題
          歡迎加入我們的群聊


          點個 在看 你最好看

          瀏覽 53
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲中文字幕电影 | 淫色一非一区二区朝鲜 | 韩国三级在线视频网址 | 99色| 九九超碰 |