参数说明

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

配置参数

参数名

取值范围

默认值

说明

polar_csi.enable_query

on|off

off

是否启用列存索引。

polar_csi.cost_threshold

1~1000000000

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

  • PostgreSQL 16:默认为1000。

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

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

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

说明

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

polar_csi.exec_parallel

1~512

2

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

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

polar_csi.memory_limit

1~1048576

1024

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

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

polar_csi.flush_count

2048~20480000

204800

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

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

polar_csi.update_interval

0~3600

3

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

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

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

  • PostgreSQL 16:无相关参数

polar_csi.update_batch_count

1024~4294967295

100000

批量更新行数的阈值。

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

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

  • PostgreSQL 16:无相关参数

polar_csi.forward_replay_wait

on|off

off

查询一致性级别,取值如下:

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

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

数据类型

类别

数据类型

基本数据类型

BOOLEANARRAYBITUUID

字符串和二进制类型

BPCHARCHARVARCHARTEXTNAMEBYTEA

日期和时间类型

DATETIMETIMESTAMPTIMESTAMPTZINTERVAL

数值型

BIGINTDECIMALDOUBLE PRECISIONFLOAT4FLOAT8INTEGERNUMERICREALSERIALSHORTSMALLINT

复合类型

JSONJSONBENUM