Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Use the HypoPG extension to create hypothetical indexes

Última atualização: Aug 21, 2026

Este tópico descreve como usar a extensão HypoPG para criar índices hipotéticos em uma instância do ApsaraDB RDS for PostgreSQL. Use os índices hipotéticos criados para verificar se a indexação melhora o desempenho das consultas. Índices hipotéticos não são índices reais e não consomem recursos como núcleos de CPU ou espaço em disco.

Pré-requisitos

  • A instância RDS deve executar a versão secundária do mecanismo 20230830 ou posterior. Se a instância RDS usar o PostgreSQL 17, a versão secundária do mecanismo deverá ser 20241030 ou posterior.

    Importante

    Algumas versões secundárias do mecanismo anteriores a 20230830 suportam esta extensão. No entanto, o ApsaraDB RDS planeja otimizar extensões vulneráveis nas atualizações de versão secundária para padronizar o gerenciamento de extensões e aumentar a segurança. Portanto, não é possível criar esta extensão em instâncias RDS que executam uma versão secundária do mecanismo anterior a 20230830. Para mais informações, consulte Restrictions on extension creation for RDS for PostgreSQL.

    • Se você já criou esta extensão em uma instância RDS com versão secundária do mecanismo anterior a 20230830, pode continuar a usá-la.

    • Se estiver criando esta extensão pela primeira vez ou precisar recriá-la na instância RDS, atualize a versão secundária do mecanismo da instância para a versão mais recente. Para mais informações, consulte Update the minor engine version.

  • Use uma conta privilegiada para conectar-se à instância RDS. Verifique o tipo de conta usada na página Accounts no console do ApsaraDB RDS. Se a conta for padrão, crie uma conta privilegiada e use-a para conectar-se à instância RDS. Para mais informações, consulte Create an account.

Ativar ou desativar a extensão HypoPG

Nota

Os índices hipotéticos são válidos apenas na sessão atual.

  • Execute o seguinte comando para ativar a extensão HypoPG:

    CREATE EXTENSION hypopg;
    Nota

    Somente contas privilegiadas têm permissão para executar o comando anterior.

  • Execute o seguinte comando para desativar a extensão HypoPG:

    DROP EXTENSION hypopg;
    Nota

    Somente contas privilegiadas têm permissão para executar o comando anterior.

Exemplos

  1. Crie uma tabela e insira dados de teste.

    create extension hypopg;
    
    CREATE TABLE hypo (id integer, val text) ;
    INSERT INTO hypo SELECT i, 'line ' || i FROM generate_series(1, 100000) i ;
    VACUUM ANALYZE hypo ;
  2. Verifique o desempenho dos planos de execução das instruções SQL sem índices na tabela.

    EXPLAIN SELECT val FROM hypo WHERE id = 1;
                           QUERY PLAN
    --------------------------------------------------------
     Seq Scan on hypo  (cost=0.00..1791.00 rows=1 width=14)
       Filter: (id = 1)
    (2 rows)
  3. Crie um índice hipotético.

    SELECT * FROM hypopg_create_index('CREATE INDEX ON hypo (id)') ;
     indexrelid |      indexname
    ------------+----------------------
          18284 | <18284>btree_hypo_id
    (1 row)
  4. Verifique se o índice hipotético melhora o desempenho da consulta nos planos de execução.

    EXPLAIN SELECT val FROM hypo WHERE id = 1;
                                        QUERY PLAN
    ----------------------------------------------------------------------------------
     Index Scan using <18284>btree_hypo_id on hypo  (cost=0.04..8.06 rows=1 width=10)
       Index Cond: (id = 1)
    (2 rows)
  5. Analise os planos de execução das instruções SQL executadas. O índice hipotético criado não é usado nos planos de execução reais.

    EXPLAIN ANALYZE SELECT val FROM hypo WHERE id = 1;
                                                QUERY PLAN
    ---------------------------------------------------------------------------------------------------
     Seq Scan on hypo  (cost=0.00..1791.00 rows=1 width=10) (actual time=0.046..46.390 rows=1 loops=1)
       Filter: (id = 1)
       Rows Removed by Filter: 99999
     Planning time: 0.160 ms
     Execution time: 46.460 ms
    (5 rows)

Referências

Para obter mais informações sobre o HypoPG, consulte Usage of HypoPG.