This topic demonstrates the excellent performance of AnalyticDB for MySQL when processing complex online analytical processing (OLAP) queries. This performance test uses the industry-recognized TPC-H and TPC-DS standard test datasets to comprehensively and objectively evaluate the query response capability of an AnalyticDB for MySQL cluster with 100 GB of data.
Test Environment
The performance test was conducted in the following AnalyticDB for MySQL cluster environment:
Product Series | Specifications | Version |
Enterprise Edition | Reserved resource single node specification: 8 ACU Number of reserved resource nodes: 12 | 3.2.6.3 |
The basic test environment was provisioned by Alibaba Cloud.
Test Methods and Procedures
This test follows standardized procedures and strict execution policies to ensure the fairness, stability, and reproducibility of the results.
Test Procedure Overview
The performance test includes the following three core steps:
Build data structures: Create table schemas in AnalyticDB for MySQL based on the TPC-H and TPC-DS standards.
Initialize data: Generate and import 100 GB of standard test data.
Execute standard queries: Run all standard query statements defined by TPC-H and TPC-DS and record the running time.
For more information about the test procedure, see the TPC-H test and the TPC-DS test.
Execution Policies
To ensure the accuracy of the results, this test follows these execution policies:
Prefetching: Before the official test, run two full query rounds for system prefetching to warm up components such as the cache and connection pool.
Multi-round optimization: Run five complete test rounds consecutively and use the best result from the five rounds as the final performance metric.
Test Script Examples
Shell scripts are used to automate query execution and ensure test consistency.
TPC-H Test Script
while [ $n -lt 23 ]
do
echo "query ${n} starting"
time mysql -f tpch <tpch_${n}.sql
echo "query $n ended!"
n=`expr ${n} + 1`
doneTPC-DS Test Script
while [ $n -lt 100 ]
do
echo "query ${n} starting"
time mysql -f tpcds <tpcds_${n}.sql
echo "query $n ended!"
n=`expr ${n} + 1`
donePerformance Test Results
TPC-H Test Results
With 100 GB of data, AnalyticDB for MySQL efficiently executed all 22 complex TPC-H queries (Q1 to Q22). All queries were completed in sub-seconds or seconds, with a total running time of only 11.65 seconds. The following table shows the detailed results in seconds:
Query SQL | Running Time (seconds) | Query SQL | Running Time (seconds) |
Q01 | 0.79 | Q12 | 0.27 |
Q02 | 0.13 | Q13 | 0.91 |
Q03 | 0.41 | Q14 | 0.24 |
Q04 | 0.75 | Q15 | 0.25 |
Q05 | 0.63 | Q16 | 0.54 |
Q06 | 0.08 | Q17 | 0.26 |
Q07 | 0.32 | Q18 | 0.81 |
Q08 | 0.59 | Q19 | 0.35 |
Q09 | 1.57 | Q20 | 0.33 |
Q10 | 0.58 | Q21 | 1.24 |
Q11 | 0.23 | Q22 | 0.37 |
SUM | 11.65 |
TPC-DS Test Results
For the TPC-DS test dataset, which features higher query complexity and more diverse scenarios, AnalyticDB for MySQL also delivered powerful performance. It completed all 99 queries with a total running time of approximately 48.22 seconds. The following table shows the detailed results in seconds:
Query SQL | Running Time (seconds) | Query SQL | Running Time (seconds) | Query SQL | Running Time (seconds) |
Q01 | 0.24 | Q34 | 0.19 | Q67 | 3.14 |
Q02 | 0.42 | Q35 | 0.39 | Q68 | 0.21 |
Q03 | 0.06 | Q36 | 0.10 | Q69 | 0.21 |
Q04 | 6.22 | Q37 | 0.07 | Q70 | 0.24 |
Q05 | 0.27 | Q38 | 1.01 | Q71 | 0.25 |
Q06 | 0.22 | Q39 | 0.41 | Q72 | 0.81 |
Q07 | 0.14 | Q40 | 0.08 | Q73 | 0.09 |
Q08 | 0.14 | Q41 | 0.07 | Q74 | 2.02 |
Q09 | 0.30 | Q42 | 0.04 | Q75 | 0.84 |
Q10 | 0.22 | Q43 | 0.11 | Q76 | 0.22 |
Q11 | 3.55 | Q44 | 0.23 | Q77 | 0.19 |
Q12 | 0.09 | Q45 | 0.12 | Q78 | 0.96 |
Q13 | 0.23 | Q46 | 0.26 | Q79 | 0.22 |
Q14 | 1.79 | Q47 | 0.55 | Q80 | 0.22 |
Q15 | 0.12 | Q48 | 0.15 | Q81 | 0.33 |
Q16 | 0.45 | Q49 | 0.17 | Q82 | 0.06 |
Q17 | 0.57 | Q50 | 0.19 | Q83 | 0.18 |
Q18 | 0.32 | Q51 | 0.69 | Q84 | 0.13 |
Q19 | 0.15 | Q52 | 0.05 | Q85 | 0.60 |
Q20 | 0.08 | Q53 | 0.07 | Q86 | 0.10 |
Q21 | 0.07 | Q54 | 0.35 | Q87 | 1.02 |
Q22 | 0.41 | Q55 | 0.05 | Q88 | 0.18 |
Q23 | 4.61 | Q56 | 0.22 | Q89 | 0.11 |
Q24 | 0.65 | Q57 | 0.45 | Q90 | 0.17 |
Q25 | 0.51 | Q58 | 0.16 | Q91 | 0.18 |
Q26 | 0.12 | Q59 | 1.71 | Q92 | 0.04 |
Q27 | 0.12 | Q60 | 0.24 | Q93 | 0.24 |
Q28 | 0.23 | Q61 | 0.27 | Q94 | 0.26 |
Q29 | 0.47 | Q62 | 0.16 | Q95 | 0.37 |
Q30 | 0.31 | Q63 | 0.07 | Q96 | 0.11 |
Q31 | 0.53 | Q64 | 0.65 | Q97 | 0.36 |
Q32 | 0.04 | Q65 | 0.33 | Q98 | 0.24 |
Q33 | 0.20 | Q66 | 0.21 | Q99 | 0.25 |
SUM | 48.22 |
Conclusion
In summary, the test results from the TPC-H and TPC-DS standard datasets show that AnalyticDB for MySQL delivers industry-leading performance when processing complex analytical queries on large scale datasets. This provides robust support for enterprise-level data analytics applications.