All Products
Search
Document Center

PolarDB:In-Memory Column Index (IMCI) performance

Last Updated:Jan 07, 2026

This document describes the online analytical processing (OLAP) performance of a PolarDB for MySQL 8.0.1 Cluster Edition cluster with the In-Memory Column Index (IMCI) feature enabled. The performance is tested using the TPC-H benchmark.

Introduction to IMCI for PolarDB for MySQL

PolarDB for MySQL uses the In-Memory Column Index (IMCI) feature to improve performance for complex queries on large datasets in online analytical processing (OLAP) scenarios. With IMCI, PolarDB for MySQL offers a unified hybrid transaction/analytical processing (HTAP) solution for both real-time transaction processing and data analytics.

The following figure shows the architecture of the IMCI feature in PolarDB for MySQL.HTAP

For more information, see In-Memory Column Index.

Notes

Performance tests

TPC-H 100 GB

Test environment 1: 32-core 256 GB nodes

This test compares the query performance of the column store (IMCI enabled) and the row store (IMCI disabled). The test uses a 100 GB TPC-H dataset on nodes with 32 cores and 256 GB of memory.

The following table shows the query times. The times shown are not from the first run.

SQL Query

Disabling the IMCI feature

(1 machine, seconds)

Enable the IMCI feature

(1 machine, seconds)

Enable IMCI

(2 machines, seconds)

Enabling the IMCI feature

3-machine query time (seconds)

Enable the IMCI feature

Query time for 4 machines (seconds)

Acceleration ratio (Column vs. Row)

Multi-node scale factor

Q1

2495.05

1.846

0.986

0.836

0.642

1351.60

0.72

Q2

13.18

0.191

0.146

0.142

0.117

69.01

0.41

Q3

345.56

0.482

0.292

0.192

0.165

716.93

0.73

Q4

63.78

0.364

0.163

0.141

0.098

175.22

0.93

Q5

251.48

0.475

0.383

0.256

0.227

529.43

0.52

Q6

241.7

0.209

0.123

0.115

0.097

1156.46

0.54

Q7

174.91

0.513

0.356

0.232

0.195

340.96

0.66

Q8

560.82

0.454

0.279

0.234

0.196

1235.29

0.58

Q9

450.68

1.875

0.914

0.708

0.542

240.36

0.86

Q10

895.75

1.361

0.684

0.71

0.488

658.16

0.70

Q11

30.03

0.19

0.148

0.119

0.105

158.05

0.45

Q12

266.14

0.626

0.388

0.265

0.206

425.14

0.76

Q13

780.74

1.505

1.022

0.935

0.616

518.76

0.61

Q14

72.04

0.307

0.263

0.165

0.135

234.66

0.57

Q15

261.77

0.428

0.363

0.32

0.275

611.61

0.39

Q16

40.69

0.569

0.384

0.312

0.249

71.511

0.57

Q17

57.75

0.544

1.388

1.195

1.054

106.16

0.13

Q18

257.66

1.43

0.955

0.649

0.499

180.18

0.72

Q19

19.17

1.076

0.581

0.53

0.405

17.816

0.66

Q20

143.97

0.372

0.37

0.32

0.282

387.02

0.33

Q21

293.99

1.142

0.56

0.463

0.356

257.43

0.80

Q22

18.81

0.352

0.382

0.358

0.306

53.44

0.29

TOTAL

7735.67

16.311

11.13

9.197

7.255

474.26

0.56

  • The following figure compares the query times before and after IMCI is enabled.image

  • The following figure compares the query times on multiple machines after IMCI is enabled.image

Test environment 2: 8-core 32 GB nodes

This test measures the query performance of the column store with the IMCI feature enabled. The test uses a 100 GB TPC-H dataset on four machines with 8-core, 32 GB nodes.

The following table shows the query times.

SQL Query

Query time (seconds)

Q1

3.014

Q2

0.239

Q3

0.605

Q4

0.316

Q5

0.636

Q6

0.326

Q7

0.66

Q8

0.596

Q9

2.464

Q10

1.715

Q11

0.257

Q12

0.895

Q13

2.516

Q14

0.39

Q15

0.736

Q16

0.69

Q17

2.689

Q18

3.395

Q19

1.521

Q20

0.811

Q21

1.335

Q22

0.747

TOTAL

26.553

TPC-H 1 TB

Test environment 1: 32-core 256 GB nodes

This test measures the query performance of the column store with the IMCI feature enabled. The test uses a 1 TB TPC-H dataset on multiple machines with 32-core, 256 GB nodes.

The following table shows the query times. The times shown are not from the first run.

SQL Query

Query time on one machine (seconds)

Query time on two machines (seconds)

Query time on three machines (seconds)

Query time on four machines (seconds)

Multi-node scale factor

Q1

37.887

25.495

8.189

6.061

1.56

Q2

1.357

0.725

0.567

0.416

0.82

Q3

20.379

11.478

1.784

2.653

1.92

Q4

13.766

1.542

1.38

0.741

4.64

Q5

19.317

4.003

2.268

1.69

2.86

Q6

13.496

6.372

2.359

0.591

5.71

Q7

23.388

10.523

2.068

1.595

3.67

Q8

21.443

10.82

1.593

1.143

4.69

Q9

53.665

28.061

10.761

18.661

0.72

Q10

34.708

11.243

10.054

4.728

1.84

Q11

1.543

0.866

0.795

0.628

0.61

Q12

26.284

13.178

7.595

1.829

3.59

Q13

25.986

12.942

10.848

6.639

0.98

Q14

16.745

8.641

3.023

1.028

4.07

Q15

28.147

3.201

2.286

1.853

3.80

Q16

5.703

3.788

2.253

1.767

0.81

Q17

22.433

14.715

11.651

10.131

0.55

Q18

89.751

41.766

25.612

18.365

1.22

Q19

36.414

20.41

11.557

8.752

1.04

Q20

16.353

3.44

2.739

2.429

1.68

Q21

43.945

6.768

4.82

3.299

3.33

Q22

3.475

3.775

3.141

2.637

0.33

TOTAL

556.185

243.752

127.343

97.636

1.42

The following graph compares query times:image

Test environment 2: 8-core 32 GB nodes

This test measures the query performance of the column store with the IMCI feature enabled. The test uses a 1 TB TPC-H dataset on four machines with 8-core, 32 GB nodes.

SQL Query

Query time (seconds)

Q1

55.545

Q2

1.386

Q3

31.712

Q4

16.113

Q5

30.062

Q6

23.215

Q7

30.432

Q8

32.907

Q9

104.637

Q10

44.04

Q11

2.139

Q12

28.469

Q13

35.825

Q14

21.549

Q15

42.483

Q16

7.906

Q17

52.072

Q18

64.924

Q19

48.368

Q20

26.958

Q21

55.754

Q22

8.436

TOTAL

764.932

TPC-H 3 TB

Test environment: 32-core 256 GB nodes

This test measures the query performance of the column store with the IMCI feature enabled. The test uses a 3 TB TPC-H dataset on multiple machines with 32-core, 256 GB nodes.

The following table shows the query times.

SQL Query

Query time on two machines (seconds)

Query time on four machines (seconds)

Query time on six machines (seconds)

Query time on eight machines (seconds)

Query time on 12 machines (seconds)

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

The following graph compares the query times:image