暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

HGDB中如何在线重建索引

瀚高PG实验室 2022-12-28
293

目录

文档用途

详细信息

相关文档


文档用途

本文档主要用于指导瀚高数据库使用人员在线重建索引。

详细信息

情景一:单个索引/少量索引重建

查询某个表对应的索引信息:

    highgo=# select * from pg_indexes where tablename = 'test01'; 


    schemaname | tablename | indexname | tablespace | indexdef


    ------------+-----------+---------------+------------+--------------------------------------------------------------


    public | test01 | idx_test01_id | | CREATE INDEX idx_test01_id ON public.test01 USING btree (id)


    (1 row)
    复制

    (左右滑动查看完整内容)

    删除目标索引:

      highgo=# drop index idx_test01_id ;


      DROP INDEX
      复制

      重建新索引:

        highgo=# create index idx_test01_id on test01(id);


        CREATE INDEX
        复制

        (左右滑动查看完整内容)


        情景二:大量索引重建

        如果是对整个表所有索引重建:

          highgo=# reindex table test01 ;


          REINDEX


          highgo=# select * from pg_indexes where tablename = 'test01';


          schemaname | tablename | indexname | tablespace | indexdef


          ------------+-----------+---------------+------------+--------------------------------------------------------------


          public | test01 | idx_test01_id | | CREATE INDEX idx_test01_id ON public.test01 USING btree (id)


          (1 row)
          复制

          (左右滑动查看完整内容)

          注意事项:如果该表索引为空,则reindex不会创建任何索引。

          知识拓展:

          REINDEX语句对象还可以是数据库和索引自身,即:

            REINDEX DATABASE testdb; 


            REINDEX TABLE my_table;


            REINDEX INDEX aa_pkey;
            复制


            情景三:大量索引重建,且部分索引不重建

            SQL拼接处所有索引删除语句:

              with inx_name as ( select * from pg_indexes where indexname like '%xxxxx%' )


              select 'drop index ' || inx_name.indexname || ';' from inx_name;
              复制

              (左右滑动查看完整内容)

              选中自己所需索引进行删除操作即可。

              文章转载自瀚高PG实验室,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

              评论