查询场景

本文介绍不同查询场景的测试方法与结果。

场景:在线报表查询

说明

本测试并未完全依照TPC-H基准测试规范,而是基于该测试规范进行了修改。本测试结果不能等同于完全遵守TPC-H测试规范所获得的测试结果,因此不能与完全遵守该测试规范获得的测试结果进行对比。

  • 业务背景

    在线报表场景中,面向单表或者多表关联后的TopN,谓词过滤以及聚合计算是典型的分析计算需求。本示例通过一个面向零售行业的决策分析系统来展示AnalyticDB for MySQL的性能。数据模型是基于TPC-H实现的,更多信息可参见TPC-H测试集

  • 测试环境

    AnalyticDB for MySQL弹性模式集群版,版本 3.1.3.4。

本次测试数据量为1TB。

  • 测试结果

    • 1、统计指定时间内,有成交记录的活跃用户数。

      select
        count(*)   -- 聚合:统计
      from
        (
          select
            c_name,
            c_phone,
            o_totalprice
          from
            customer,
            orders
          where
            c_custkey = o_custkey
        -- 谓词过滤:指定时间
          and o_orderdate < date '1993-09-23'  
          and o_orderdate > date '1993-03-23'
        ) a;

      测试结果如下:

      产品

      查询耗时

      AnalyticDB for MySQL

      0.7s

    • 2、统计未派送订单明细,按照优先级(比如,订单客单价)排序。该报表数据可以用来跟踪订单派送的服务状态。

      select  
          l_orderkey,  
          sum(l_extendedprice*(1-l_discount)) as revenue,  -- 聚合:潜在的收入 
          o_orderdate,  
          o_shippriority  
      from  
          customer, orders, lineitem
      where  
          c_mktsegment = 'MACHINERY'     -- 谓词过滤
          and c_custkey = o_custkey  
          and l_orderkey = o_orderkey  
          and o_orderdate < date '1995-03-23'
          and o_orderdate > date '1995-02-23' -- 谓词过滤,指定时间
          and l_shipdate > date '1995-03-23'  
          and l_shipdate < date '1996-03-23'
      group by --分组操作  
          l_orderkey, --订单标识  
          o_orderdate, --订单日期  
          o_shippriority --运输优先级  
      order by 
          revenue desc, --TopN:降序排序,把潜在最大收入列在前面  
          o_orderdate;
      limit 
          100;

      测试结果如下:

      产品

      查询耗时

      AnalyticDB for MySQL

      1.2s

    • 3、统计某个地区零件供货商收入。该报表数据可以用于决策在给定的区域是否需要建立一个当地分配中心。

      select
              n_name,
              sum(l_extendedprice * (1 - l_discount)) as revenue  -- 聚合:潜在的收入 
      from
              customer,
              orders,
              lineitem,
              supplier,
              nation,
              region   -- 六表连接  
      where
              c_custkey = o_custkey
              and l_orderkey = o_orderkey
              and l_suppkey = s_suppkey
              and c_nationkey = s_nationkey
              and s_nationkey = n_nationkey
              and n_regionkey = r_regionkey
              and r_name = 'EUROPE'  --  谓词过滤:指定地区
              and o_orderdate >= date '1996-01-01'  -- 谓词过滤:指定时间
              and o_orderdate < date '1996-01-01' + interval '1' year
              and l_shipdate > date '1996-02-23'  
                and l_shipdate < date '1996-03-23'
      group by
              n_name
      order by   -- TopN:按收入降序排序,注意分组和排序子句不同  
              revenue desc
      limit 10

      测试结果如下:

      产品

      查询耗时

      AnalyticDB for MySQL

      1.3s

场景:交互式分析

说明

本测试并未完全依照TPC-H基准测试规范,而是基于该测试规范进行了修改。本测试结果不能等同于完全遵守TPC-H测试规范所获得的测试结果,因此不能与完全遵守该测试规范获得的测试结果进行对比。

  • 业务背景

    交互式分析指的是业务人员通过BI工具或自助式查询平台进行自由的数据探索性查询场景,查询语句的主要特点是支持多维度组合、支持多表Join、包含聚合查询、包含子查询、包含过滤条件。交互式分析性能测试标准为TPC-H测试集,更多信息可参见TPC-H测试集

  • 测试环境

    • AnalyticDB for MySQL弹性模式集群版

    • 高性能集群,C8 x 4(96核, 768G)

    • 弹性(96Core)集群,6节点 (96核,384G)

    • 弹性(8Core)集群,1节点 (8核,32G)

  • 测试结果(单位:秒,测试数据量为:1TB)

    • TPC-H查询

      高性能查询耗时

      弹性(96Core)查询耗时

      Q1

      81.59

      106.43

      Q2

      6.57

      12.83

      Q3

      47.87

      44.1

      Q4

      60.13

      63

      Q5

      45.48

      59.23

      Q6

      11.33

      2.05

      Q7

      55.98

      38.65

      Q8

      56.4

      77.29

      Q9

      147.62

      132.96

      Q10

      48.06

      41.99

      Q11

      11.19

      15

      Q12

      40.53

      20.71

      Q13

      59.79

      62.93

      Q14

      37.67

      5.33

      Q15

      28.53

      12.68

      Q16

      10.18

      9.89

      Q17

      48.63

      73.22

      Q18

      54.88

      82.86

      Q19

      32.07

      60.67

      Q20

      29.53

      39.87

      Q21

      123.89

      143.43

      Q22

      17.41

      21.96

      总计

      1055.33

      1127.07

  • 测试结果(单位:秒,测试数据量为:10GB)

    • TPC-H查询

      弹性(8core)查询耗时

      Q1

      12.916

      Q2

      0.905

      Q3

      3.693

      Q4

      5.589

      Q5

      5.156

      Q6

      0.169

      Q7

      2.910

      Q8

      4.815

      Q9

      14.284

      Q10

      3.747

      Q11

      0.892

      Q12

      1.347

      Q13

      3.613

      Q14

      0.404

      Q15

      0.967

      Q16

      0.927

      Q17

      9.932

      Q18

      9.215

      Q19

      1.428

      Q20

      1.798

      Q21

      11.708

      Q22

      1.147

      总计

      97.562

场景:数据仓库ETL

说明

本测试并未完全依照TPC-DS基准测试规范,而是基于该测试规范进行了修改。本测试结果不能等同于完全遵守TPC-DS测试规范所获得的测试结果,因此不能与完全遵守该测试规范获得的测试结果进行对比。

  • 业务背景

    • ETL场景指的是数据仓库中进行批量的数据清洗、转换和加工计算,通常扫描数据量比较大、计算逻辑复杂、关联表数量较多,计算时间比较长。ETL场景性能测试标准为TPC-DS测试集,更多信息可参见TPC-DS测试集

  • 测试环境

    • AnalyticDB for MySQL,弹性模式集群版

    • 弹性(192Core)集群,12节点(192核,768G)

  • 测试结果(单位:毫秒)

    • TPC-DS查询

      弹性(192Core)查询耗时

      1

      3,389

      2

      23,697

      3

      9,162

      4

      137,346

      5

      27,759

      6

      8,957

      7

      17,755

      8

      9,952

      9

      12,759

      10

      16,026

      11

      87,537

      12

      2,036

      13

      28,970

      14

      145,158

      15

      6,865

      16

      15,636

      17

      21,550

      18

      12,039

      19

      13,438

      20

      4,007

      21

      2,513

      22

      5,733

      23

      418,050

      24

      28,407

      25

      20,617

      26

      8,835

      27

      17,002

      28

      18,918

      29

      19,380

      30

      2,016

      31

      26,526

      32

      4,541

      33

      14,992

      34

      11,627

      35

      15,882

      36

      11,007

      37

      4,589

      38

      29,910

      39

      7,924

      40

      14,371

      41

      367

      42

      6,814

      43

      9,072

      44

      5,766

      45

      2,691

      46

      18,635

      47

      46,180

      48

      19,307

      49

      54,883

      50

      13,762

      51

      26,672

      52

      6,768

      53

      8,524

      54

      12,323

      55

      6,680

      56

      15,015

      57

      22,917

      58

      11,187

      59

      35,661

      60

      14,910

      61

      24,657

      62

      4,923

      63

      9,444

      64

      144,757

      65

      22,203

      66

      15,136

      67

      138,622

      68

      23,379

      69

      15,156

      70

      18,614

      71

      17,067

      72

      18,801

      73

      11,977

      74

      54,000

      75

      37,597

      76

      31,804

      77

      17,376

      78

      78,188

      79

      18,075

      80

      55,100

      81

      2,958

      82

      4,531

      83

      2,000

      84

      1,554

      85

      11,139

      86

      3,221

      87

      29,937

      88

      52,394

      89

      8,704

      90

      2,971

      91

      1,800

      92

      1,969

      93

      29,375

      94

      7,822

      95

      11,929

      96

      7,935

      97

      17,152

      98

      7,351

      99

      9,159

      总计

      2595.79(秒)