本文档基于TPC-H测试PolarDB MySQL版8.0.1版本集群版开启IMCI功能时的OLAP负载性能。
PolarDB MySQL版IMCI介绍
PolarDB MySQL版引入列存索引来增强OLAP场景大数据量复杂查询的处理能力。依托于列存索引,PolarDB MySQL版实现了一体化的实时事务处理和实时数据分析的能力,成为一站式IMCI数据库产品解决方案。
列存索引特性在PolarDB MySQL版中的功能架构图如下:
更多信息请参见列存索引。
注意事项
IMCI功能按需开启,在同一集群内实现了OLTP和OLAP计算资源的隔离,开启IMCI功能后可以通过新增只读列存节点来服务业务中的OLAP查询请求。关于如何新增只读列存节点,请参见添加只读列存节点。
PolarDB IMCI性能测试时,需要额外创建一个只读数据库代理自定义地址指向该只读列存节点。请参见OLTP与OLAP业务独立场景下行存和列存手动分流,即这个指向只读列存节点的只读数据库代理自定义地址进行测试。
IMCI性能测试,无需对TPC-H中各个表建立二级索引。
性能测试
TPCH 100 GB
测试环境一:集群规格为32核256 GB
在TPC-H测试使用的数据集为100 GB,集群规格为32核256 GB场景下,测试开启IMCI功能(列存)和关闭IMCI功能(行存)时的查询性能。
查询时间(非首次执行时间)结果见下表:
查询SQL | 关闭IMCI功能 1台机器查询时间(单位:秒) | 开启IMCI功能 1台机器查询时间(单位:秒) | 开启IMCI功能 2台机器查询时间(单位:秒) | 开启IMCI功能 3台机器查询时间(单位:秒) | 开启IMCI功能 4台机器查询时间(单位:秒) | 列存与行存加速比 | 列存多机scale_factor |
Q1 | 2495.05 | 4.67 | 2.62 | 2.15 | 1.5 | 534.27 | 0.78 |
Q2 | 13.18 | 0.72 | 0.53 | 0.49 | 0.45 | 18.31 | 0.4 |
Q3 | 345.56 | 2.44 | 1.37 | 1.01 | 0.81 | 141.62 | 0.75 |
Q4 | 63.78 | 1.46 | 0.66 | 0.52 | 0.37 | 43.68 | 0.99 |
Q5 | 251.48 | 2.16 | 1.41 | 1.15 | 0.98 | 116.43 | 0.55 |
Q6 | 241.7 | 0.54 | 0.3 | 0.24 | 0.18 | 447.59 | 0.75 |
Q7 | 174.91 | 2.42 | 1.46 | 1.11 | 0.88 | 72.28 | 0.69 |
Q8 | 560.82 | 2.09 | 1.41 | 1.16 | 1.01 | 268.33 | 0.52 |
Q9 | 450.68 | 14.29 | 8.76 | 6.28 | 4.74 | 31.54 | 0.75 |
Q10 | 895.75 | 4.47 | 3.17 | 2.85 | 2.42 | 200.39 | 0.46 |
Q11 | 30.03 | 1.06 | 0.83 | 0.77 | 0.74 | 28.33 | 0.36 |
Q12 | 266.14 | 1.70 | 0.92 | 0.7 | 0.53 | 156.55 | 0.8 |
Q13 | 780.74 | 5.83 | 7.04 | 6.84 | 3.56 | 133.92 | 0.41 |
Q14 | 72.04 | 1.10 | 0.61 | 0.46 | 0.38 | 65.49 | 0.72 |
Q15 | 261.77 | 2.47 | 1.4 | 1.06 | 0.82 | 105.98 | 0.75 |
Q16 | 40.69 | 2.25 | 1.84 | 1.49 | 1.19 | 18.08 | 0.47 |
Q17 | 57.75 | 2.92 | 3.93 | 3 | 2.51 | 19.78 | 0.29 |
Q18 | 257.66 | 12.72 | 6.16 | 3.79 | 2.46 | 20.26 | 1.29 |
Q19 | 19.17 | 2.13 | 1.15 | 0.96 | 0.68 | 9.00 | 0.78 |
Q20 | 143.97 | 1.22 | 1.2 | 1 | 0.8 | 118.01 | 0.38 |
Q21 | 293.99 | 6.92 | 3.37 | 2.38 | 1.82 | 42.48 | 0.95 |
Q22 | 18.81 | 1.41 | 1.33 | 1.16 | 0.98 | 13.34 | 0.36 |
TOTAL | 7735.67 | 77.01 | 51.47 | 40.58 | 29.81 | 100.45 | 0.65 |
开启IMCI前后查询时间对比图如下:
开启IMCI后,多机查询时间对比图如下:
测试环境二:集群规格为8核32 GB
在TPC-H测试使用的数据集为100 GB,集群规格为8核32 GB场景下,使用4台机器测试开启IMCI功能(列存)时的查询性能。
查询时间结果见下表:
查询SQL | 查询时间(单位:秒) |
Q1 | 4.74 |
Q2 | 0.79 |
Q3 | 2.35 |
Q4 | 1.13 |
Q5 | 2.51 |
Q6 | 0.54 |
Q7 | 2.51 |
Q8 | 2.07 |
Q9 | 11.07 |
Q10 | 8.01 |
Q11 | 1.00 |
Q12 | 1.49 |
Q13 | 7.11 |
Q14 | 0.92 |
Q15 | 2.24 |
Q16 | 2.62 |
Q17 | 5.44 |
Q18 | 8.78 |
Q19 | 5.75 |
Q20 | 1.64 |
Q21 | 5.99 |
Q22 | 1.69 |
TOTAL | 80.39 |
TPCH 1 TB
测试环境一:集群规格为32核256 GB
在TPC-H使用的数据集为1 TB,节点规格为32核256 GB场景下,使用多台机器测试开启IMCI功能(列存)和关闭IMCI功能(行存)时的查询性能。
查询时间(非首次执行时间)结果见下表:
查询SQL | 1台机器查询时间(单位:秒) | 2台机器查询时间(单位:秒) | 3台机器查询时间(单位:秒) | 4台机器查询时间(单位:秒) | 列存多机scale_factor |
Q1 | 108.1 | 62.02 | 31.19 | 14.64 | 1.85 |
Q2 | 25.91 | 8.76 | 6.66 | 5.35 | 1.21 |
Q3 | 73.97 | 17.69 | 11.34 | 9.17 | 2.02 |
Q4 | 56.83 | 8.74 | 5.85 | 4.64 | 3.06 |
Q5 | 76.47 | 37.46 | 12.25 | 10.09 | 1.89 |
Q6 | 40.94 | 2.87 | 2.24 | 1.72 | 5.95 |
Q7 | 87.22 | 41.56 | 12.55 | 9.59 | 2.27 |
Q8 | 84.36 | 41.95 | 10.16 | 7.49 | 2.82 |
Q9 | 328.76 | 147.24 | 103.65 | 58.67 | 1.40 |
Q10 | 117.14 | 70.29 | 42.82 | 35.91 | 0.82 |
Q11 | 10.73 | 7.83 | 6.95 | 6.37 | 0.42 |
Q12 | 81.59 | 36.30 | 7.40 | 5.82 | 3.50 |
Q13 | 93.83 | 85.52 | 78.57 | 63.84 | 0.37 |
Q14 | 52.92 | 15.04 | 5.04 | 3.82 | 3.47 |
Q15 | 100.4 | 13.54 | 10.55 | 8.47 | 2.96 |
Q16 | 23.09 | 17.99 | 12.87 | 9.95 | 0.58 |
Q17 | 97.71 | 41.69 | 30.34 | 24.41 | 1.00 |
Q18 | 478.74 | 221.07 | 103.14 | 63.64 | 1.88 |
Q19 | 97.24 | 44.67 | 30.21 | 21.56 | 1.13 |
Q20 | 58.7 | 14.86 | 8.97 | 7.25 | 2.03 |
Q21 | 188.61 | 40.68 | 28.70 | 22.46 | 2.10 |
Q22 | 16.76 | 13.84 | 13.04 | 10.16 | 0.41 |
TOTAL | 2300.02 | 991.64 | 574.49 | 405.02 | 1.42 |
查询时间对比图如下:
测试环境二:集群规格为8核32 GB
在TPC-H使用的数据集为1 TB,节点规格为8核32 GB场景下,使用4台机器测试开启IMCI功能(列存)时的查询性能。
查询SQL | 查询时间(单位:秒) |
Q1 | 86.54 |
Q2 | 21.27 |
Q3 | 50.14 |
Q4 | 31.33 |
Q5 | 54.61 |
Q6 | 29.45 |
Q7 | 56.51 |
Q8 | 62.12 |
Q9 | 166.23 |
Q10 | 132.54 |
Q11 | 14.04 |
Q12 | 48.35 |
Q13 | 96.33 |
Q14 | 36.37 |
Q15 | 75.13 |
Q16 | 29.59 |
Q17 | 87.61 |
Q18 | 205.75 |
Q19 | 66.84 |
Q20 | 46.58 |
Q21 | 117.78 |
Q22 | 19.71 |
TOTAL | 1534.82 |
TPCH 3 TB
测试环境:集群规格为32核256 GB
在TPC-H使用的数据集为3 TB,节点规格为32核256 GB场景下,使用多台机器测试开启IMCI功能(列存)时的查询性能。
查询时间结果见下表:
查询SQL | 2台机器查询时间(单位:秒) | 4台机器查询时间(单位:秒) | 6台机器查询时间(单位:秒) | 8台机器查询时间(单位:秒) | 12台机器查询时间(单位:秒) |
Q1 | 207.5972 | 114.1061 | 73.47038 | 57.16459 | 15.99434 |
Q2 | 16.59763 | 9.126449 | 6.531764 | 5.256679 | 8.056107 |
Q3 | 129.0127 | 70.05587 | 50.75962 | 20.77513 | 15.96027 |
Q4 | 87.88678 | 48.23547 | 11.22043 | 9.06577 | 6.153393 |
Q5 | 145.3669 | 80.90937 | 55.35411 | 20.8387 | 16.81331 |
Q6 | 64.77278 | 33.61284 | 3.626543 | 3.1164 | 2.393298 |
Q7 | 158.332 | 82.21748 | 57.402 | 19.28089 | 14.15242 |
Q8 | 171.7152 | 89.18184 | 61.07931 | 47.21762 | 11.49657 |
Q9 | 695.1544 | 291.9174 | 190.4007 | 143.2241 | 70.81171 |
Q10 | 318.9998 | 260.2054 | 263.955 | 209.1835 | 207.9049 |
Q11 | 26.04949 | 20.9185 | 18.32898 | 17.69759 | 16.45135 |
Q12 | 120.3137 | 62.77258 | 42.20166 | 11.08824 | 7.982793 |
Q13 | 388.5152 | 320.5632 | 151.0701 | 90.68545 | 96.00401 |
Q14 | 93.1189 | 58.5961 | 22.68045 | 21.14225 | 19.99422 |
Q15 | 150.9475 | 79.81816 | 18.32744 | 16.26336 | 11.92104 |
Q16 | 72.26089 | 36.46251 | 24.70481 | 18.45767 | 12.8234 |
Q17 | 233.1315 | 196.8246 | 112.588 | 113.5308 | 109.7312 |
Q18 | 1163.623 | 537.1255 | 305.1325 | 237.8622 | 69.33614 |
Q19 | 152.0749 | 81.25671 | 54.06552 | 41.54125 | 26.91918 |
Q20 | 118.8899 | 77.28576 | 55.68256 | 30.76349 | 30.0725 |
Q21 | 336.2304 | 177.2311 | 52.50164 | 41.73258 | 29.24006 |
Q22 | 52.38819 | 50.87576 | 40.99282 | 37.71081 | 37.43663 |
TOTAL | 4902.97928 | 2779.29879 | 1672.07638 | 1213.59912 | 837.648829 |
查询时间对比图如下: