首页 > 其他分享 >MogDB 学习笔记之 -- 索引失效

MogDB 学习笔记之 -- 索引失效

时间:2023-02-28 16:24:02浏览次数:34  
标签:03 00 -- MogDB 索引 ran part 2018 40968

[[toc]]
# 概念描述
哪些操作会导致分区表的全局索引失效(比如 move partition,drop partition ,truncate partition ,split partition , merge partitions )
# 测试验证
1、环境准备
```
CREATE TABLE t_ran
(
user_number NUMBER(11),
start_time timestamp(0) without time zone,
business_name character(2000),
ng_staff_id character(50)
)
PARTITION BY RANGE (start_time)
(PARTITION PART_20180228 VALUES LESS THAN (TO_DATE('2018-03-01','YYYY-MM-DD')),
PARTITION PART_20180301 VALUES LESS THAN (TO_DATE('2018-03-02','YYYY-MM-DD')),
PARTITION PART_20180302 VALUES LESS THAN (TO_DATE('2018-03-03','YYYY-MM-DD')),
PARTITION PART_20180303 VALUES LESS THAN (TO_DATE('2018-03-04','YYYY-MM-DD')),
PARTITION PART_20180304 VALUES LESS THAN (TO_DATE('2018-03-05','YYYY-MM-DD')),
PARTITION PART_20180305 VALUES LESS THAN (TO_DATE('2018-03-06','YYYY-MM-DD')),
PARTITION PART_20180306 VALUES LESS THAN (TO_DATE('2018-03-07','YYYY-MM-DD')),
PARTITION PART_20180307 VALUES LESS THAN (TO_DATE('2018-03-08','YYYY-MM-DD')),
PARTITION PART_20180308 VALUES LESS THAN (TO_DATE('2018-03-09','YYYY-MM-DD')),
PARTITION PART_20180309 VALUES LESS THAN (TO_DATE('2018-03-10','YYYY-MM-DD')),
PARTITION PART_20180310 VALUES LESS THAN (TO_DATE('2018-03-11','YYYY-MM-DD')),
PARTITION PART_20180311 VALUES LESS THAN (TO_DATE('2018-03-12','YYYY-MM-DD')),
PARTITION PART_20180312 VALUES LESS THAN (TO_DATE('2018-03-13','YYYY-MM-DD')),
PARTITION PART_20180313 VALUES LESS THAN (TO_DATE('2018-03-14','YYYY-MM-DD')),
PARTITION PART_20180314 VALUES LESS THAN (TO_DATE('2018-03-15','YYYY-MM-DD')),
PARTITION PART_20180315 VALUES LESS THAN (TO_DATE('2018-03-16','YYYY-MM-DD')),
PARTITION PART_20180316 VALUES LESS THAN (TO_DATE('2018-03-17','YYYY-MM-DD')),
PARTITION PART_20180317 VALUES LESS THAN (TO_DATE('2018-03-18','YYYY-MM-DD')),
PARTITION PART_20180318 VALUES LESS THAN (TO_DATE('2018-03-19','YYYY-MM-DD')),
PARTITION PART_20180319 VALUES LESS THAN (TO_DATE('2018-03-20','YYYY-MM-DD')),
PARTITION PART_20180320 VALUES LESS THAN (TO_DATE('2018-03-21','YYYY-MM-DD')),
PARTITION PART_20180321 VALUES LESS THAN (TO_DATE('2018-03-22','YYYY-MM-DD')),
PARTITION PART_20180322 VALUES LESS THAN (TO_DATE('2018-03-23','YYYY-MM-DD')),
PARTITION PART_20180323 VALUES LESS THAN (TO_DATE('2018-03-24','YYYY-MM-DD')),
PARTITION PART_20180324 VALUES LESS THAN (TO_DATE('2018-03-25','YYYY-MM-DD')),
PARTITION PART_20180325 VALUES LESS THAN (TO_DATE('2018-03-26','YYYY-MM-DD')),
PARTITION PART_20180326 VALUES LESS THAN (TO_DATE('2018-03-27','YYYY-MM-DD')),
PARTITION PART_20180327 VALUES LESS THAN (TO_DATE('2018-03-28','YYYY-MM-DD')),
PARTITION PART_20180328 VALUES LESS THAN (TO_DATE('2018-03-29','YYYY-MM-DD')),
PARTITION PART_20180329 VALUES LESS THAN (TO_DATE('2018-03-30','YYYY-MM-DD')),
PARTITION PART_20180330 VALUES LESS THAN (TO_DATE('2018-03-31','YYYY-MM-DD')),
PARTITION PART_20180331 VALUES LESS THAN (TO_DATE('2018-04-01','YYYY-MM-DD')),
PARTITION PART_max VALUES LESS THAN (MAXVALUE))
;
openGauss=#
openGauss=# \d pg_index
Table "pg_catalog.pg_index"
Column | Type | Modifiers
----------------+--------------+-----------
indexrelid | oid | not null
indrelid | oid | not null
indnatts | smallint | not null
indisunique | boolean | not null
indisprimary | boolean | not null
indisexclusion | boolean | not null
indimmediate | boolean | not null
indisclustered | boolean | not null
indisusable | boolean | not null
indisvalid | boolean | not null
indcheckxmin | boolean | not null
indisready | boolean | not null
indkey | int2vector | not null
indcollation | oidvector | not null
indclass | oidvector | not null
indoption | int2vector | not null
indexprs | pg_node_tree |
indpred | pg_node_tree |
indisreplident | boolean |
indnkeyatts | smallint |
Indexes:
"pg_index_indexrelid_index" UNIQUE, btree (indexrelid) TABLESPACE pg_default
"pg_index_indrelid_index" btree (indrelid) TABLESPACE pg_default
Replica Identity: NOTHING


openGauss=# insert into t_ran select * from customer_t_copy;
INSERT 0 1282751
openGauss=# CREATE INDEX ind_t_ran ON t_ran(start_time) LOCAL;

CREATE INDEX
openGauss=#
openGauss=# CREATE INDEX ind2_t_ran ON t_ran(start_time,user_number) ;
CREATE INDEX
```
2、测试 truncate partition

```


openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)
openGauss=# alter table t_ran truncate partition part_20180319;
ALTER TABLE
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | f | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

openGauss=# alter index ind2_t_ran rebuild;


REINDEX
openGauss=#
openGauss=#
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

```
结论:经过以上实验验证,发现 indisusable 字段发生变化,truncate partition 这个操作会导致全局索引失效,分区索引没有影响。

3、测试 split partition

```

openGauss=# select relname,parentid,interval,boundaries from pg_partition where parentid=(select parentid from pg_partition where relname='t_ran' );
relname | parentid | interval | boundaries
---------------+----------+----------+-------------------------
t_ran | 40968 | |
part_20180301 | 40968 | | {"2018-03-02 00:00:00"}
part_20180302 | 40968 | | {"2018-03-03 00:00:00"}
part_20180303 | 40968 | | {"2018-03-04 00:00:00"}
part_20180304 | 40968 | | {"2018-03-05 00:00:00"}
part_20180305 | 40968 | | {"2018-03-06 00:00:00"}
part_20180306 | 40968 | | {"2018-03-07 00:00:00"}
part_20180307 | 40968 | | {"2018-03-08 00:00:00"}
part_20180308 | 40968 | | {"2018-03-09 00:00:00"}
part_20180309 | 40968 | | {"2018-03-10 00:00:00"}
part_20180310 | 40968 | | {"2018-03-11 00:00:00"}
part_20180311 | 40968 | | {"2018-03-12 00:00:00"}
part_20180312 | 40968 | | {"2018-03-13 00:00:00"}
part_20180313 | 40968 | | {"2018-03-14 00:00:00"}
part_20180316 | 40968 | | {"2018-03-17 00:00:00"}
part_20180317 | 40968 | | {"2018-03-18 00:00:00"}
part_20180318 | 40968 | | {"2018-03-19 00:00:00"}
part_20180319 | 40968 | | {"2018-03-20 00:00:00"}
part_20180320 | 40968 | | {"2018-03-21 00:00:00"}
part_20180322 | 40968 | | {"2018-03-23 00:00:00"}
part_20180323 | 40968 | | {"2018-03-24 00:00:00"}
part_20180324 | 40968 | | {"2018-03-25 00:00:00"}
part_20180326 | 40968 | | {"2018-03-27 00:00:00"}
part_20180327 | 40968 | | {"2018-03-28 00:00:00"}
part_20180328 | 40968 | | {"2018-03-29 00:00:00"}
part_20180330 | 40968 | | {"2018-03-31 00:00:00"}
part_20180331 | 40968 | | {"2018-04-01 00:00:00"}
part_max | 40968 | | {NULL}
(28 rows)

这个是opengauss数据库句法问题,和Oracle数据库语法不一样。

penGauss=# alter table t_ran split partition part_max at (to_date('2018-04-02','YYYY-MM-DD')) into (partition part_20180401,partition part_max);
ERROR: resulting partition "part_max" name conflicts with that of an existing partition

^

--------------------
GAUSS-00923: "resulting partition '%s' name conflicts with that of an existing partition"

SQLSTATE: 42710

错误原因: SPLIT PARTITION操作得到的分区名称与已有分区名冲突,该分割分区操作不能执行。

解决办法: 建议修改结果分区名称。

---------------------

openGauss=# select relname,parentid,interval,boundaries from pg_partition where parentid=(select parentid from pg_partition where relname='t_ran' );
relname | parentid | interval | boundaries
---------------+----------+----------+-------------------------
t_ran | 40968 | |
part_20180301 | 40968 | | {"2018-03-02 00:00:00"}
part_20180302 | 40968 | | {"2018-03-03 00:00:00"}
part_20180303 | 40968 | | {"2018-03-04 00:00:00"}
part_20180304 | 40968 | | {"2018-03-05 00:00:00"}
part_20180305 | 40968 | | {"2018-03-06 00:00:00"}
part_20180306 | 40968 | | {"2018-03-07 00:00:00"}
part_20180307 | 40968 | | {"2018-03-08 00:00:00"}
part_20180308 | 40968 | | {"2018-03-09 00:00:00"}
part_20180309 | 40968 | | {"2018-03-10 00:00:00"}
part_20180310 | 40968 | | {"2018-03-11 00:00:00"}
part_20180311 | 40968 | | {"2018-03-12 00:00:00"}
part_20180312 | 40968 | | {"2018-03-13 00:00:00"}
part_20180313 | 40968 | | {"2018-03-14 00:00:00"}
part_20180316 | 40968 | | {"2018-03-17 00:00:00"}
part_20180317 | 40968 | | {"2018-03-18 00:00:00"}
part_20180318 | 40968 | | {"2018-03-19 00:00:00"}
part_20180320 | 40968 | | {"2018-03-21 00:00:00"}
part_20180322 | 40968 | | {"2018-03-23 00:00:00"}
part_20180323 | 40968 | | {"2018-03-24 00:00:00"}
part_20180324 | 40968 | | {"2018-03-25 00:00:00"}
part_20180326 | 40968 | | {"2018-03-27 00:00:00"}
part_20180327 | 40968 | | {"2018-03-28 00:00:00"}
part_20180328 | 40968 | | {"2018-03-29 00:00:00"}
part_20180330 | 40968 | | {"2018-03-31 00:00:00"}
part_20180331 | 40968 | | {"2018-04-01 00:00:00"}
part_20180319 | 40968 | | {"2018-03-20 00:00:00"}
part_20180401 | 40968 | | {"2018-04-02 00:00:00"}
part_max1 | 40968 | | {NULL}



(29 rows)


openGauss=# alter table t_ran split partition part_max at (to_date('2018-04-02','YYYY-MM-DD')) into (partition part_20180401,partition part_max1);
ALTER TABLE

openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | f | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)
openGauss=# alter index ind2_t_ran rebuild;
REINDEX
openGauss=#
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

openGauss=#
```
结论:经过以上实验验证,发现 indisusable 字段发生变化,split partition 这个操作会导致全局索引失效,分区索引没有影响。


4、测试merge partitions
```

openGauss=# alter table t_ran merge partitions part_20180320,part_20180322 into partition part_20180322;
ALTER TABLE
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | f | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

openGauss=# select 'alter index ' || indexrelid::regclass ||' rebuild; ' from pg_index where indisusable='f';
?column?
----------------------------------
alter index ind2_t_ran rebuild;
(1 row)

openGauss=# alter index ind2_t_ran rebuild;
REINDEX
openGauss=#
openGauss=#
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

```
结论:经过以上实验验证,发现 indisusable 字段发生变化,merge partition 这个操作会导致全局索引失效,分区索引没有影响。


5、drop partition
```

openGauss=# alter table t_ran drop partition part_20180322;
ALTER TABLE
openGauss=# select relname,parentid,interval,boundaries from pg_partition where parentid=(select parentid from pg_partition where relname='t_ran' );
relname | parentid | interval | boundaries
---------------+----------+----------+-------------------------
t_ran | 40968 | |
part_20180301 | 40968 | | {"2018-03-02 00:00:00"}
part_20180302 | 40968 | | {"2018-03-03 00:00:00"}
part_20180303 | 40968 | | {"2018-03-04 00:00:00"}
part_20180304 | 40968 | | {"2018-03-05 00:00:00"}
part_20180305 | 40968 | | {"2018-03-06 00:00:00"}
part_20180306 | 40968 | | {"2018-03-07 00:00:00"}
part_20180307 | 40968 | | {"2018-03-08 00:00:00"}
part_20180308 | 40968 | | {"2018-03-09 00:00:00"}
part_20180309 | 40968 | | {"2018-03-10 00:00:00"}
part_20180310 | 40968 | | {"2018-03-11 00:00:00"}
part_20180311 | 40968 | | {"2018-03-12 00:00:00"}
part_20180312 | 40968 | | {"2018-03-13 00:00:00"}
part_20180313 | 40968 | | {"2018-03-14 00:00:00"}
part_20180316 | 40968 | | {"2018-03-17 00:00:00"}
part_20180317 | 40968 | | {"2018-03-18 00:00:00"}
part_20180318 | 40968 | | {"2018-03-19 00:00:00"}
part_20180323 | 40968 | | {"2018-03-24 00:00:00"}
part_20180324 | 40968 | | {"2018-03-25 00:00:00"}
part_20180326 | 40968 | | {"2018-03-27 00:00:00"}
part_20180327 | 40968 | | {"2018-03-28 00:00:00"}
part_20180328 | 40968 | | {"2018-03-29 00:00:00"}
part_20180330 | 40968 | | {"2018-03-31 00:00:00"}
part_20180331 | 40968 | | {"2018-04-01 00:00:00"}
part_20180319 | 40968 | | {"2018-03-20 00:00:00"}
part_20180401 | 40968 | | {"2018-04-02 00:00:00"}
part_max1 | 40968 | | {NULL}
(27 rows)

openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | f | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

openGauss=# alter index ind2_t_ran rebuild;


REINDEX
openGauss=#
openGauss=#
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)
```
结论:经过以上实验验证,发现 indisusable 字段发生变化,drop partition 这个操作会导致全局索引失效,分区索引没有影响。

6、move partition

```

openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

openGauss=# alter table t_ran move partition part_20180401 TABLESPACE pg_default;
ALTER TABLE
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

miao=> CREATE TABLESPACE ds_tbs RELATIVE LOCATION 'db_tbs/';
CREATE TABLESPACE
miao=> \q
[omm@db1 db1]$
openGauss=# alter table t_ran move partition part_20180401 TABLESPACE ds_tbs;
ALTER TABLE
openGauss=# select indexrelid,indisusable,indexrelid::regclass,indrelid::regclass,pg_get_indexdef(indexrelid) from pg_index where indrelid='t_ran'::regclass;
indexrelid | indisusable | indexrelid | indrelid | pg_get_indexdef
------------+-------------+------------+----------+--------------------------------------------------------------------------------------------------------------------------
41138 | t | ind2_t_ran | t_ran | CREATE INDEX ind2_t_ran ON t_ran USING ubtree (start_time, user_number) WITH (storage_type=USTORE) TABLESPACE pg_default
41104 | t | ind_t_ran | t_ran | CREATE INDEX ind_t_ran ON t_ran USING ubtree (start_time) LOCAL WITH (storage_type=USTORE) TABLESPACE pg_default
(2 rows)

openGauss=#


```

结论:经过以上实验验证,发现 indisusable 字段没有变化,move partition 这个操作对全局索引和分区索引没有影响。

 


# 知识总结
1、truncate partition
全局索引:失效
分区索引:正常、没影响
2、split partition
全局索引:失效
分区索引:正常、没影响
3、merge partitions
全局索引:失效
分区索引:正常、没影响
4、drop partition
全局索引:失效
分区索引:正常、没影响
5、move partition
全局索引:正常、没影响
分区索引:正常、没影响

标签:03,00,--,MogDB,索引,ran,part,2018,40968
From: https://www.cnblogs.com/xinxin1222/p/17164748.html

相关文章

  • JAVA基础学习
    学习记录第一部分Java基础第一章Java概述程序:为执行某些操作或解决某个问题而编写的一系列有序指令的集合。1.java重要特点面向对象(OOP)健壮跨平台性(一次编译......
  • centOS 7 安装nfs
    A机器(172.29.127.214)~验证机器是否安装nfs[root@iZuf68axr8qcp54hhjv1utZ~]#rpm-qa|grepnfs[root@iZuf68axr8qcp54hhjv1utZ~]#rpm-qa|greprpcbind~安装nfs......
  • 直播搭建 -go - 使用go的轻量流媒体服务器livego
    golang的流媒体服务器livego的使用,livego是基于golang开发的简单高效的rtmp直播服务器。github地址:livego/README_cn.mdatmaster·gwuhaolin/livego(github.com)......
  • pg高可用方案repmgr带witness搭建
    一、总体架构操作系统版本:linuxredhat7.6pg版本:12.2repmgr版本5.2192.168.3.73主库:repmgr+master192.168.3.74从库1:repmgr+standby192.168.3.75......
  • Vue项目中通过 avatarUrl: require('@/assets/user-avatar.png')出现required is not
    参考:https://blog.csdn.net/qq_37130872/article/details/128133646useImages.js//获取assets静态图片exportconstgetAssetsImge=(name)=>{returnne......
  • Cesium 模型移动以及视角跟随(十九)
     以下是一段示例代码,目的是使某一物体运动并进行相机跟踪该代码创建了一个CesiumViewer对象,并在其中添加了一个名为“飞机”的实体对象。该实体具有模型、位置和路径三个......
  • 轮播图开发
    HTML布局主要分为了三部分:左右切换按钮、图片列表、底部数字切换按钮 实现交互点:图片能自动轮播,轮播有动画效果,按钮有选中效果,点击左右按钮可切换,点击数字可以切换到对应......
  • MogDB 学习笔记之 -- PITR恢复
    #概念描述##背景信息当数据库崩溃或希望回退到数据库之前的某一状态时,MogDB的即时恢复功能(Point-In-TimeRecovery,简称PITR)可以支持恢复到备份归档数据之后的任意时间点......
  • DataTransfer.setDragImage()自定义拖拽图像遇到的坑
    发生拖动时,从拖动目标(dragstart事件触发的元素)生成半透明图像,并在拖动过程中跟随鼠标指针。这个图片是自动创建的,你不需要自己去创建它。然而,如果想要设置为自定义图像,那......
  • 详解http和https
    前言大家好,我是小卷!近几年,互联网发生着翻天覆地的变化,尤其是我们一直习以为常的HTTP协议,在逐渐的被HTTPS协议所取代,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促......