Todos os produtos
Search
Central de documentação

PolarDB:Fast traverse

Última atualização: Jun 28, 2026

Em tabelas com dezenas de milhões de linhas, operações como COUNT(*) e varreduras completas de índice têm alto custo. O MySQL envia cada linha para a camada SQL antes do processamento, o que gera grande sobrecarga de CPU e alta latência nas consultas. O recurso Fast traverse elimina esse gargalo ao delegar a execução à camada do mecanismo de armazenamento InnoDB. A travessia das páginas utiliza o índice escolhido pelo otimizador, e não necessariamente a chave primária.

Versões compatíveis

O Fast traverse exige PolarDB for MySQL 8.0 em uma das seguintes versões de revisão:

  • 8.0.1.1.5 ou posterior

  • 8.0.2.2.0 ou posterior

Para verificar a versão do seu cluster, consulte Consultar a versão do mecanismo.

Funcionamento

O MySQL Community Edition 8.0.13 não executa COUNT(*) diretamente no InnoDB; ele envia todas as linhas para a camada SQL para contagem. Já o MySQL Community Edition 8.0.18 introduziu a travessia no nível de página no InnoDB, mas sempre utiliza o índice de chave primária, independentemente da escolha do otimizador.

O Fast traverse supera ambas as limitações:

  • Percorre as páginas do InnoDB usando o índice selecionado pelo otimizador, em vez da chave primária

  • Evita bloqueios prolongados de página e a sobrecarga de restauração de versões do Multi-Version Concurrency Control (MVCC) causados por consultas à tabela

Esse recurso vem ativado por padrão em todos os clusters compatíveis do PolarDB for MySQL, sem necessidade de configuração adicional.

Verifique se o Fast traverse está ativo

Execute EXPLAIN na consulta e analise a saída. Neste exemplo, usamos a tabela lineitem do TPC-H:

mysql> EXPLAIN SELECT COUNT(*) FROM lineitem\G
*************************** 1. row ***************************
           id: 1
  select_type: SIMPLE
        table: lineitem
   partitions: NULL
         type: index
possible_keys: NULL
          key: i_l_shipdate
      key_len: 4
          ref: NULL
         rows: 59440464
     filtered: 100.00
        Extra: Using index

Desempenho

Os resultados abaixo foram obtidos com o benchmark TPC-H no fator de escala 10, com innodb_parallel_read_threads definido como 1. Clusters PolarDB com Fast traverse apresentam desempenho superior ao MySQL Community Edition 8.0.13 e 8.0.18.

Performance of fast traverse

Perguntas frequentes

**Qual é o valor padrão de innodb_parallel_read_threads no PolarDB for MySQL?**

O valor padrão é 0. Para alterá-lo, consulte Configure parâmetros de cluster e nó.