AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 337380
Accepted
mstrom
mstrom
Asked: 2024-03-01 05:52:55 +0800 CST2024-03-01 05:52:55 +0800 CST 2024-03-01 05:52:55 +0800 CST

MySql Aurora - com que frequência executar ANALYZE TABLE?

  • 772

Tenho um banco de dados que existe há cerca de 10 anos, com centenas de tabelas, muitas das quais possuem vários milhões de linhas.

Não temos DBA e temos um número cada vez maior de consultas lentas. Estamos trabalhando para resolver essas dúvidas lentas, mas estou curioso sobre o ajuste do banco de dados em geral.

Você acha ANALYZE TABLEque nos traria algum ganho de desempenho? Isso é algo que os DBAs executam regularmente?

mysql
  • 1 1 respostas
  • 20 Views

1 respostas

  • Voted
  1. Best Answer
    Bill Karwin
    2024-03-01T08:36:34+08:002024-03-01T08:36:34+08:00

    É raro que ANALYZE TABLE faça qualquer melhoria significativa na otimização de consultas.

    Você pode executar este comando livremente. É de baixo impacto. Tudo o que ele faz é ler algumas páginas de tablespaces do InnoDB para amostrar os dados e usa isso para atualizar estatísticas sobre tamanho de linha, distribuição de índice, etc. o tamanho total da mesa.

    A mesma operação acontece automaticamente de tempos em tempos conforme você atualiza as linhas da tabela. Isso também acontece automaticamente sempre que a instância é reiniciada ou se você reconstruir índices (muitos tipos de operações ALTER TABLE fazem isso) ou se você executar OPTIMIZE TABLE.

    Leia https://dev.mysql.com/doc/refman/8.0/en/innodb-performance-optimizer-statistics.html para obter mais detalhes se quiser saber.

    Raramente, as estatísticas do índice ficam desatualizadas depois que você altera muitas linhas de dados. Nesse caso, você pode melhorar a precisão da otimização da consulta executando ANALYZE TABLE. Mas apenas se as alterações nos dados também alterarem significativamente a distribuição dos dados.

    Usar ANALYZE TABLE é uma espécie de manobra de "grave maria". Ocasionalmente, faz diferença e é fácil de fazer, então você também pode tentar. Mas não tenha muitas esperanças.

    O que tem muito mais probabilidade de ajudar em suas dúvidas é otimizá-las. Isso leva algum tempo e leva algum tempo para entender como os índices ajudam nas consultas. Freqüentemente, um índice bem escolhido pode ajudar a melhorar várias consultas, por isso é uma boa relação custo-benefício.

    Lamento saber que você não tem um bom DBA. Você pode considerar contratar um ou pelo menos entrar em contato com um consultor para uma revisão única de suas principais dúvidas lentas.

    • 1

relate perguntas

  • Existem ferramentas de benchmarking do MySQL? [fechado]

  • Onde posso encontrar o log lento do mysql?

  • Como posso otimizar um mysqldump de um banco de dados grande?

  • Quando é o momento certo para usar o MariaDB em vez do MySQL e por quê?

  • Como um grupo pode rastrear alterações no esquema do banco de dados?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve