云数据库 GAUSSDB-CREATE GLOBAL INDEX:注意事项
时间:2024-12-19 14:11:36
注意事项
- 同基表约束,GSI的分布列不支持更新(UPDATE、MERGE INTO)操作。
- 只支持GTM-LITE模式下创建GSI,不支持其他GTM模式,在其他模式下创建GSI会报错。
- Astore不支持创建GSI以外的UBTree,不支持对GSI创建分区。
- 不支持创建与基表分布一致的GSI,执行时会报错。
- 只支持对Ustore表执行CREATE GSI CONCURRENTLY,对Astore表执行CREATE GSI CONCURRENTLY会报语法错误;不支持表达式索引和部分索引CREATE GSI CONCURRENTLY,会报语法错误。
- 支持对基表为hash分布的行存Astore表、Ustore表、分区表、HASHBUCKET表、段页式表创建hash分布的GSI,不支持基表为复制表、list/range分布、二级分区表等,对于GSI本身不支持hash分布以外的分布。
- 不支持对基表列名或者ctid、xc_node_hash、xmin、xmax、tableoid(当基表为分区表时)、tablebucketid(当基表为HASHBUCKET表时)增加_new$$、_NEW$$后与自身列名重复的基表创建GSI。
- 当基表为分区非HASHBUCKET表时,GSI最多支持27列;当基表为HASHBUCKET非分区表时,GSI最多支持27列;当基表为HASHBUCKET分区表时,GSI最多支持26列;当基表为非分区非HASHBUCKET表最多支持28列(包括索引键和分布键)。
- 对于创建GSI、重建GSI以及涉及重建GSI的操作:比如分区表分区操作(包括DROP、TRUNCATE、MERGE、SPLIT、EXCHANGE PARTITION)指定UPDATE DISTRIBUTED GLOBAL INDEX,ALTER TABLE涉及重建数据的操作,HASHBUCKET表ALTER SET TABLESPACE操作、MOVE PARTITION操作,建议开启STREAM模式,以达到最优性能。(其中,STREAM模式指设置enable_stream_operator参数为ON,并设置create_gsi_opt参数值为build)
- 不支持UPSERT,建有GSI的基表上不支持IUD returning功能。
- 如果在执行VACUUM FULL、CLUSTER或者REINDEX操作时中断,表上的GSI可能会变为UNUSABLE状态,此时查询语句走GSI会报错,建议执行REINDEX INDEX重建GSI。
- 在对建有GSI的基表执行COPY、GDS数据导入时,需要开启enable_stream_operator参数,以达到最优数据导入性能。
- 当前会使GSI失效的操作:REINDEX数据库级、CLUSTER数据库级/分区级、ALTER TABLE PARTITION(DROP、TRUNCATE、MERGE、SPLIT、EXCHANGE PARTITION未指定UPDATE DISTRIBUTED GLOBAL INDEX将失效分区表上的所有GSI,其中,EXCHANGE PARTITITON未指定UPDATE DISTRIBUTED GLOBAL INDEX将同步失效普通表上的所有GSI) 。
- 回表支持STREAM和非STREAM分布式计划。其中STREAM分布式计划,继承STREAM相关约束。考虑到STREAM通信时延,当选择率过低或者谓词命中行数较少时,性能非最优,不建议使用回表计划,建议与普通索引配合使用。非STREAM分布式计划,需使用gsitable hint,适合在谓词命中行数较少的场景使用。当STREAM分布式计划性能非最优时,也可考虑使用非STREAM分布式计划。具体案例参见全局二级索引回表扫描。
- 对于Insert into select批量插入场景,建议打开enable_stream_operator,插入执行STREAM计划 (当基表为段页式表,HASHBUCKET表,以及防篡改表时,不会执行STREAM计划,仍然采用回到CN的计划),如果关闭enable_stream_operator,执行计划采用回到CN的方式,性能较差(类比503.1.0版本创建GSI性能)。
- 对于INSERT、UPDATE、DELETE,执行计划采用分布式执行计划,会有性能损失,其中,UPDATE/DELETE批量场景,执行计划采用回到CN的方式,性能较差。
- GSI支持表达式索引,但存在以下约束:
- 同基表约束,不支持分布键包含表达式(且无法创建索引列仅包含表达式的GSI,因为此时分布键必定为表达式),创建时会报语法错误。
- 同普通索引约束,不支持CONTAINING列中包含表达式,创建时会报语法错误。
- 若表上存在以"expr"为前缀的列名,不支持创建带有表达式的GSI,创建时会报语法错误。
- 当ENABLE_PBE_OPTIMIZATION关闭时,对于INSERT、UPDATE、DELETE、MERGE INTO操作的GSI层将会走gplan。
support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0546.html
看了此文的人还看了
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格
推荐文章