首页 > 其他分享 >KingbaseES 索引unusable的使用

KingbaseES 索引unusable的使用

时间:2024-03-29 18:47:01浏览次数:28  
标签:index rows name unusable pct t1 索引 KingbaseES

前言

KingbaseES中,索引不可用原则介绍

oracle数据库中,如果索引不可用(unusable),在进行DML操作时,会触发报错:索引不可用。
在KES中如果设置索引不可用,插入数据不会报错,因为当索引被置为不可用状态后,如果要重新启动索引需要rebuild索引,此时会在新索引中重新组织表tuple数据。

insert into t1 select generate_series(1,10000) ;

create index iex on t1(id);

test=# explain analyze select * from t1 where id=50;
QUERY PLAN


Index Only Scan using iex on t1 (cost=0.29..8.30 rows=1 width=4) (actual time=0.018..0.019 rows=1 loops=1)
Index Cond: (id = 50)
Heap Fetches: 1
Planning Time: 0.177 ms
Execution Time: 0.035 ms
(5 rows)

查看dba_indexes视图,索引状态是valid。

test=# select * from dba_indexes where index_name='IEX';
-[ RECORD 1 ]-----------+----------------------------
owner | SYSTEM
index_name | IEX
index_type | BTREE
table_owner | SYSTEM
table_name | T1
table_type | TABLE
uniqueness | NONUNIQUE
compression | DISABLED
prefix_length | 0
tablespace_name | database default tablespace
ini_trans |
max_trans |
initial_extent |
next_extent |
min_extents |
max_extents |
pct_increase |
pct_threshold |
include_column |
freelists |
freelist_groups |
pct_free |
logging | YES
blevel |
leaf_blocks |
distinct_keys |
avg_leaf_blocks_per_key |
avg_data_blocks_per_key |
clustering_factor |
status | VALID
num_rows |

alter index iex unusable;

此时索引状态变为UNUSABLE。

test=# select * from dba_indexes where index_name='IEX';
-[ RECORD 1 ]-----------+----------------------------
owner | SYSTEM
index_name | IEX
index_type | BTREE
table_owner | SYSTEM
table_name | T1
table_type | TABLE
uniqueness | NONUNIQUE
compression | DISABLED
prefix_length | 0
tablespace_name | database default tablespace
ini_trans |
max_trans |
initial_extent |
next_extent |
min_extents |
max_extents |
pct_increase |
pct_threshold |
include_column |
freelists |
freelist_groups |
pct_free |
logging | YES
blevel |
leaf_blocks |
distinct_keys |
avg_leaf_blocks_per_key |
avg_data_blocks_per_key |
clustering_factor |
status | UNUSABLE

执行计划已经不再使用索引。

test=# explain analyze select * from t1 where id=50;
QUERY PLAN


Seq Scan on t1 (cost=0.00..180.10 rows=1 width=4) (actual time=0.013..0.521 rows=1 loops=1)
Filter: (id = 50)
Rows Removed by Filter: 10007
Planning Time: 0.042 ms
Execution Time: 0.535 ms
(5 rows)

但是插入数据仍然成功
test=# insert into t1 values(434);
INSERT 0 1

alter index iex REBUILD;
再次查看dba_indexes,索引恢复可用状态

在实际生产系统中应该注意对大表的rebuild操作耗时过长,会影响业务进行。

标签:index,rows,name,unusable,pct,t1,索引,KingbaseES
From: https://www.cnblogs.com/kingbase/p/17921724.html

相关文章

  • KingbaseES V8R6集群运维案例之---备库register故障
    案例说明:据现场实施人员说,备库执行了clone,启动数据库服务,执行'repmgrstandbyregister'后,无法将备库register到集群。适用版本:KingbaseESV8R6一、问题现象如下图所示,执行'repmgrstandbyregister',register失败:二、问题分析1、repmgrstandbyregister分析如下图所示:......
  • KingbaseES 避免wal日志占用大量磁盘空间
    背景wal日志一直增长很快,查看归档目录也在执行归档,归档无异常,是归档执行太慢的原因吗?还是wal日志生成的太快了的原因呢?现场环境wal日志的磁盘空间比较小。分析首先我们分析可否加速归档速度呢,因为如果能加快归档速度就可以缓解wal日志所在磁盘空间紧张的问题,答案是不可以。arc......
  • KingbaseES 普通用户逻辑导入时权限不足错误
    逻辑导入时权限报错:ERROR:mustbememberofrole"system"实验:1、在超级用户system下新建用户与schema:createuseruser1;createschemas1;修改user1的默认权限:test=#alterdefaultprivilegesinschemas1grantallontablestouser1;ALTERDEFAULTPRIVILEGESt......
  • KingbaseES V8R3集群运维案例之---集群启动“DATA_SIZE_DIFF 16 (MB)”故障
    案例说明:为保证集群数据的一致性安全,在主备库的数据相差“DATA_SIZE_DIFF>=16M"以上时,该备库不能参与主备切换,并且通过kingbase_monitor.sh启动集群时,集群将无法启动;本案例对此种故障做了复现,并测试了解决方法。适用版本:KingbaseESV8R3适用版本:KingbaseESV8R3一、案例......
  • KingbaseES V8R3备份恢复案例之---backup_label does not exist in KINGBASE_DATA
    案例说明:在KingbaseESV8R3集群主库执行sys_rman的全备时,出现‘backup_labeldoesnotexistinKINGBASE_DATA’的故障,如下图所示:适用版本:KingbaseESV8R3一、问题现象如下所示,数据库执行sys_rman物理备份:[kingbase@node201bin]$./sys_rman-Usystem-W123456-dtes......
  • KingbaseES集群运维案例之-- V8R3与V8R6集群wal函数应用
    案例说明:KingbaseESV8R3和V8R6集群在通过函数获取wal日志的相关信息时,两个版本的函数名称不同,本案例做了函数应用的对比和总结。适用版本:KingbaseESV8R3/R6一、KingbaseESV8R3相关函数Tips:在V8R3的版本,事务日志名称为xlog。1、查询数据库支持的函数test=#selectpron......
  • kingbaseES V8R6集群运维案例之---配置priority防止failover切换案例
    案例说明:在一主多备的架构中,需要配置一台备库在主备切换时,不能选举为主库。对于repmgr主备切换主库的选择算法如下:Tips:Repmgr选举候选备节点会以以下顺序选举:LSN---->Priority---->Node_ID。系统会先选举一个LSN比较大者作为候选备节点;如LSN一样,会根据Priority优先级进行比......
  • KingbaseES V8R6集群运维案例之---级联备库upstream节点故障
    KingbaseESV8R6集群运维案例之---级联备库upstream节点故障案例说明:在KingbaseESV8R6集群,构建级联备库后,在其upstream的节点故障后,级联备库如何处理?适用版本:KingbaseESV8R6集群架构:案例一:一、配置集群的recovery参数(allnodes)Tips:关闭备库的aut-recovery机制......
  • Mysql(数据库)知识详解【4】~{索引,主键优化}
    记住满元素中间元素向上裂变就行了因为如果是5个节点,比第一个节点小的算一个指针,逼最后一个节点大的算一个指针,里面是4个指针所有元素都会出现在叶子节点并且诸多叶子节点通过指针构造一张单项链表看我:除了最下面节点,上面的节点(叶子空间最大16k)全部放满内存......
  • ElasticSearch搜索引擎介绍+性能监控及调优
    ElasticSearch搜索引擎介绍一、概述搜索在现代日常生活场景中都非常常见,如百度、京东、天猫等等。数据量都是庞大的,所以直接基于数据库搜索必定不是他们的首选,在这些场景下,要完成数据的高效搜索,都会基于搜索引擎实现。而对于搜索实现来说,市面上常见三种技术:Lucene、Solr......