"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como posso otimizar o desempenho da contagem (*) no InnoDB com índices e cache estatístico?

Como posso otimizar o desempenho da contagem (*) no InnoDB com índices e cache estatístico?

Postado em 2025-02-09
Navegar:495

How Can I Optimize COUNT(*) Performance on InnoDB with Indices and Statistical Caching?

otimizando a contagem (*) desempenho no innodb com índices

Ao lidar com tabelas grandes, mas estreitas, executando a contagem (*) consultas pode ser notoriamente lenta. Isso foi encontrado em um cenário em que uma tabela que consiste em ~ 9 milhões de registros resultou em uma operação de 6 segundos (*). ganhos. Isso é obtido usando a sintaxe do índice de uso (index_Name) na consulta. Índice (primário);

No entanto, apesar de usar o índice, o desempenho permaneceu abismal. Buscando mais opções de solução de problemas, descobriu -se que o MySQL 5.1.6 introduziu uma solução eficiente envolvendo o agendador de eventos e o cache estatístico. Tabela de estatísticas, a operação da contagem (*) pode ser significativamente otimizada. O processo implica a criação de uma tabela de estatísticas para armazenar os dados da contagem:

criar estatísticas da tabela (`key`` key` Varchar (50) não é a chave primária nula, `value` varchar (100) não nulo)
SELECT COUNT(id) FROM perf2 USE INDEX (PRIMARY);

Criar event update_stats Dentro do cronograma A cada 5 minutos FAZER Inserir em estatísticas (`key`,` value`) Valores ('data_count', (selecione count (id) de dados)) Na chave de chave duplicada Valor = valores (value);

Esta solução independente permite intervalos de atualização personalizáveis, garantindo a precisão e o frescor da contagem armazenada. Embora possa não ser perfeito, oferece aprimoramentos de desempenho consideráveis ​​em comparação com os métodos tradicionais.

Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3