参数说明

本文介绍列存索引相关参数及数据类型。

配置参数

参数名

取值范围

默认值

说明

polar_csi.enable_query

on|off

off

是否允许查询语句使用列存索引,取值如下:

  • off(默认):不允许查询语句使用列存索引。

  • on:允许查询语句使用列存索引。

polar_csi.cost_threshold

1~1000000000

50000

当查询代价小于该阈值时,查询语句不会使用列存索引来加速。实际取值请根据实际业务负载进行调整。

  • 当该参数的取值过大时,会导致耗时的 SQL 语句无法使用列存索引,查询较慢。

  • 当该参数的取值过小时,会导致简单SQL使用列存索引,降低系统的并发度。

说明
  • 您可以通过EXPLAINEXPLAIN ANALYZE来查询并分析SQL语句的查询代价。

  • PostgreSQL 14:在2.0.14.13.28.0及以上内核小版本调整参数默认值为50000,在此之前默认值为1000。

  • PostgreSQL 16:在2.0.16.10.12.0及以上内核小版本调整参数默认值为50000,在此之前默认值为1000。

polar_csi.exec_parallel

1~512

2

列存索引的并行度,即一条SQL语句可以使用的CPU资源,一般来说并行度越大性能越好。

实际取值与集群资源规格相关,请根据集群规格来调整该参数的值,建议不超过计算节点的CPU核数。

polar_csi.memory_limit

1~1048576

4096

列存索引可以使用的内存大小,单位:MB。

内存阈值越大,索引创建越快。请根据集群规格来调整该参数的值,建议不超过集群内存的25%,否则可能造成OOM的风险。

说明
  • PostgreSQL 14:在2.0.14.19.40.0及以上内核小版本调整参数默认值为4096,在此之前默认值为1024。

  • PostgreSQL 16:在2.0.16.10.12.0及以上内核小版本调整参数默认值为4096,在此之前默认值为1024。

polar_csi.flush_count

2048~20480000

204800

创建索引时,批次提交的行数。

增加行数能够提高创建效率,但同时也需要占用更多内存。

polar_csi.update_interval

0~3600

1

定期更新行列数据实时性的时间间隔,单位:秒。

增大更新间隔可以合并同类型的小事务,从而在事务数量较多时提高数据更新效率。

说明
  • PostgreSQL 14:在2.0.14.13.28.0及以上内核小版本,增加该参数用于提升列存索引的实时性。

  • PostgreSQL 16:在2.0.16.10.12.0及以上内核小版本,增加该参数用于提升列存索引的实时性。

polar_csi.update_batch_count

1024~4294967295

100000

批量更新行数的阈值。

一个更新事务的最大行数,增加该阈值可以提升数据更新的效率。

说明
  • PostgreSQL 14:在2.0.14.13.28.0及以上内核小版本,增加该参数用于提升列存索引的实时性。

  • PostgreSQL 16:在2.0.16.10.12.0及以上内核小版本,增加该参数用于提升列存索引的实时性。

polar_csi.forward_replay_wait

on|off

off

列存索引数据查询一致性级别,取值如下:

  • off:表示最终一致性,列存索引的数据可能会落后于行存。

  • on:表示强一致性,查询过程中会等待列存数据回放到最新数据时才会执行。当写入压力较大时,开启该参数,可能会造成等待时间过长。

polar_csi.forward_replay_wait_lsn_diff

0~INT_MAX

0

允许行列同步延迟的LSN大小,若延迟超过设定阈值,将不再采用列存引擎。单位:BYTE。

说明
  • 该参数仅在开启polar_csi.forward_replay_wait后才能生效。

  • 该参数仅适用于以下版本:

    • PostgreSQL 14:内核小版本2.0.14.19.40.0及以上。

    • PostgreSQL 16:内核小版本2.0.16.10.12.0及以上。

    • PostgreSQL 15PostgreSQL 17:与适用范围一致。

polar_csi.sync_addcolumn

on|off

off

是否同步Add Column到列存索引。

说明

该参数仅适用于以下版本:

  • PostgreSQL 14:内核小版本2.0.14.19.40.0及以上。

  • PostgreSQL 16:内核小版本2.0.16.10.12.0及以上。

  • PostgreSQL 15PostgreSQL 17:与适用范围一致。

数据类型

类别

数据类型

基本数据类型

BOOLEANARRAYBITUUID

字符串和二进制类型

BPCHARCHARVARCHARTEXTNAMEBYTEA

日期和时间类型

DATETIMETIMESTAMPTIMESTAMPTZINTERVAL

数值型

BIGINTDECIMALDOUBLE PRECISIONFLOAT4FLOAT8INTEGERNUMERICREALSERIALSHORTSMALLINT

复合类型

JSONJSONBENUMBITSTRINGVARCHAR[]TEXT[]

说明
  • PostgreSQL 14:在2.0.14.19.40.0及以上内核小版本,增加数据类型BITSTRINGVARCHAR[]TEXT[]

  • PostgreSQL 16:在2.0.16.10.12.0及以上内核小版本,增加数据类型BITSTRINGVARCHAR[]TEXT[]