数据库表增加了索引查询没有生效

Viewed 66

有A表,数据量1已,里面的字段a1是没有索引的,根据a1字段查询数据需要耗时30秒,给a1创建了索引(CREATE INDEX idx_name ON A(a1);),索引也创建进去了,但是查询的速度耗时没有变化,是我创建索引的姿势有问题吗?

2 Answers

【问题状态】处理中
【问题处理】你添加的是什么类型的索引,如果是倒排索引的话,创建索引之后只是对新增数据有效,如果需要给存量数据也加上倒排索引,需要使用build index,可以通过 show build index查看进度
image.png

CREATE TABLE TEST_3_bi_10 (
ID varchar(1100) NULL COMMENT 'null',
NAME varchar(164) NULL COMMENT 'null',
AGE bigint(20) NULL COMMENT 'null',
UPDATE_TIME datetime NULL COMMENT 'null',
TYPE varchar(355) NULL COMMENT 'null',
TEST_NUM1 bigint(20) NULL COMMENT 'null',
TEST_NUM2 bigint(20) NULL COMMENT 'null',
TEST_NUM3 bigint(20) NULL COMMENT 'null',
AREA varchar(355) NULL COMMENT 'null',
INDEX idx_name (NAME) USING INVERTED COMMENT ''
) ENGINE=OLAP
UNIQUE KEY(ID)
COMMENT 'bi'
DISTRIBUTED BY HASH(ID) BUCKETS 10
PROPERTIES (
"replication_allocation" = "tag.location.default: 1",
"is_being_synced" = "false",
"storage_format" = "V2",
"light_schema_change" = "true",
"disable_auto_compaction" = "false",
"enable_single_replica_compaction" = "false"
);

表数据量1000万
新增索引操作:
CREATE INDEX idx_name ON TEST_3_bi_10(NAME);
build index idx_name on TEST_3_bi_10

查询sql:
select * from TEST_3_bi_10 where NAME='123'