Topik ini menjelaskan cara menggunakan benchmark TPC-H untuk menguji kinerja pemrosesan analitik online (OLAP) dari PolarDB for MySQL versi 8.0.1 dan 8.0.2 Edisi Kluster. Anda dapat mengikuti petunjuk dalam topik ini untuk menguji kinerja database Anda.
Query paralel
PolarDB for MySQL versi 8.0 Edisi Kluster menyediakan fitur query paralel untuk mengurangi waktu respons query. Fitur ini diaktifkan secara otomatis ketika volume data yang di-query melebihi ambang batas tertentu. Untuk informasi lebih lanjut, lihat Ikhtisar.
Pada lapisan penyimpanan kluster PolarDB for MySQL versi 8.0.1, data shard didistribusikan ke thread yang berbeda. Beberapa thread melakukan komputasi paralel dan mengembalikan hasil secara berurutan ke thread pemimpin. Kemudian, thread pemimpin menggabungkan hasil dan mengembalikan hasil akhir kepada pengguna, meningkatkan efisiensi query.
Dalam PolarDB for MySQL versi 8.0.2, kemampuan akselerasi linier dari query paralel ditingkatkan ke level baru dengan dukungan komputasi paralel multi-fase. Optimasi berbasis biaya memungkinkan rencana eksekusi paralel yang lebih fleksibel dan mengatasi hambatan kinerja dari thread pemimpin tunggal serta beban yang tidak seimbang pada worker yang mungkin terjadi dalam query paralel versi 8.0.1. Secara spesifik, data shard tetap didistribusikan ke thread yang berbeda pada lapisan penyimpanan. Beberapa thread melakukan komputasi paralel dan mendistribusikan data shard ke grup worker paralel di fase berikutnya. Thread pemimpin kemudian menggabungkan hasil komputasi dan mengembalikan hasil akhir kepada pengguna, meningkatkan kemampuan eksekusi paralel secara signifikan.
Query paralel dicapai berdasarkan kemampuan pemrosesan paralel multi-core CPU. Gambar berikut menunjukkan pemrosesan paralel dalam kluster dengan delapan core dan memori 32 GB.

Tabel berikut menunjukkan nilai parameter query paralel yang diatur untuk pengujian OLAP PolarDB versi 8.0.1 dan 8.0.2. Untuk informasi lebih lanjut tentang cara mengonfigurasi parameter query paralel, lihat Konfigurasikan Parameter Kluster dan Node. Untuk informasi lebih lanjut tentang alat uji, metode, dan hasil, lihat Pengujian Kinerja untuk Query Paralel dan Hasil Pengujian.
8.0.1
Parameter
Nilai default
Nilai valid (Opsi 1)
loose_parallel_degree_policy
REPLICA_AUTO
TYPICAL
loose_max_parallel_degree
0
16
8.0.2
Parameter
Nilai default
Nilai valid (Opsi 1)
loose_parallel_degree_policy
REPLICA_AUTO
TYPICAL
loose_parallel_query_switch
''
'force_run_using_planning_dop=on'
loose_optimizer_switch
''
'hash_join_cost_based=off'
loose_max_parallel_degree
0
16
Jika loose_parallel_degree_policy diatur ke TYPICAL, PolarDB mengabaikan penggunaan sumber daya database (seperti utilisasi CPU) dan menetapkan derajat paralelisme (DOP) ke nilai parameter loose_max_parallel_degree.
Hasil pengujian
Tabel berikut menjelaskan hasil pengujian PolarDB versi 8.0.1:
Query
Durasi nilai default (Satuan: detik)
Durasi nilai valid (opsi 1) (Satuan: detik)
Q1
2.495,05
86,63
Q2
13,18
1,46
Q3
345,56
28,67
Q4
63,78
6,26
Q5
251,48
258,55
Q6
241,7
16,4
Q7
174,91
171,85
Q8
560,82
572,63
Q9
450,68
42,17
Q10
895,75
270,29
Q11
30,03
11,6
Q12
266,14
17,65
Q13
780,74
127,1
Q14
72,04
7,57
Q15
261,77
56,55
Q16
40,69
24,29
Q17
57,75
13,04
Q18
257,66
136,79
Q19
19,17
1,52
Q20
143,97
49,72
Q21
293,99
37,79
Q22
18,81
2,15

Tabel berikut menjelaskan hasil pengujian PolarDB versi 8.0.2:
Query
Durasi nilai default (Satuan: detik)
Durasi nilai valid (opsi 1) (Satuan: detik)
Q1
573,34
89,65
Q2
3,62
0,66
Q3
96,89
28,52
Q4
18,66
6,41
Q5
150,93
28,93
Q6
68,13
17,13
Q7
114,56
17,39
Q8
333,36
54,32
Q9
136,26
42,15
Q10
325,19
128,55
Q11
11,49
4,53
Q12
121,68
17,54
Q13
281,1
126,2
Q14
23,34
7,59
Q15
77,22
33,02
Q16
12,15
8,96
Q17
4,51
1,13
Q18
325,05
133,07
Q19
5,37
1,5
Q20
70,31
90,75
Q21
171,81
29,87
Q22
6,05
2,16
