【DWS】数据库索引出错的处理
## 问题描述
DWS集群在执行查询语句时,使用索引查询字段出现表中存在匹配数据但是select语句查询结果为空的情况
## 可能原因分析
对于索引出现问题的原因比较复杂,1.3.4版本的dws集群索引崩溃的原因有:事务本身使用的原因;主备之间同步的原因;ddl交换分区合并分区;pg本身B-tree的原因。索引问题出现后的处理一般是通过reindex来恢复索引
## 解决办法
创建一个行存表tpcds.customer_t1,并在tpcds.customer_t1表上的c_customer_sk字段创建索引。
CREATE TABLE tpcds.customer_t1
(
c_customer_sk integer not null,
c_customer_id char(16) not null,
c_current_cdemo_sk integer ,
c_current_hdemo_sk integer ,
c_current_addr_sk integer ,
c_first_shipto_date_sk integer ,
c_first_sales_date_sk integer ,
c_salutation char(10) ,
c_first_name char(20) ,
c_last_name char(30) ,
c_preferred_cust_flag char(1) ,
c_birth_day integer ,
c_birth_month integer ,
c_birth_year integer ,
c_birth_country varchar(20) ,
c_login char(13) ,
c_email_address char(50) ,
c_last_review_date char(10)
)
WITH (orientation = row)
DISTRIBUTE BY HASH (c_customer_sk);
CREATE INDEX tpcds_customer_index1 ON tpcds.customer_t1 (c_customer_sk);
重建一个单独索引:
REINDEX INDEX tpcds.tpcds_customer_index1;
重建表tpcds.customer_t1上的所有索引
REINDEX TABLE tpcds.customer_t1;
- 点赞
- 收藏
- 关注作者
评论(0)