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 / 63415
Accepted
Michal Charemza
Michal Charemza
Asked: 2014-04-18 04:45:59 +0800 CST2014-04-18 04:45:59 +0800 CST 2014-04-18 04:45:59 +0800 CST

Como decidir se deseja habilitar o cache de consulta do MySQL usando o InnoDB

  • 772

Como deve ser tomada a decisão de habilitar/desabilitar o cache de query do MySQL, em um servidor que utiliza apenas tabelas InnoDB. Digamos, por exemplo, se o cache estiver ativado, como deve ser a saída de:

SHOW STATUS LIKE 'Qcache%';

ser interpretado para tomar a decisão? Ou que outras consultas/criação de perfil podem ser realizadas para obter mais informações e, em seguida, como devem ser interpretadas? Se for habilitado, como seu tamanho deve ser determinado? Estou no Amazon RDS, usando MySQL 5.6. Vou acabar tendo cerca de ~ 250 bancos de dados separados, totalizando ~ 200 GB de espaço.

mysql innodb
  • 3 3 respostas
  • 13456 Views

3 respostas

  • Voted
  1. Best Answer
    Rick James
    2015-02-02T18:48:27+08:002015-02-02T18:48:27+08:00

    SHOW GLOBAL STATUS;

    Em seguida, calcule estes (seja usando MyISAM ou InnoDB):

    • Qcache_lowmem_prunes / Uptime-- Com que frequência o QC está sendo podado -- Mais de 15/s diz que há muita sobrecarga em ter o QC ativado.
    • Qcache_not_cached / Uptime-- Falha nas tentativas de cache (por segundo). >40 é provavelmente ruim.
    • Qcache_not_cached / (Qcache_hits + Com_select + Qcache_not_cached)-- Porcentagem SELECTsdisso não é armazenada em cache no QC -- >30% significa que o QC não é muito útil.
    • Qcache_hits / Qcache_inserts-- Hit to insert ratio -- > 10 é desejável
    • 5
  2. RolandoMySQLDBA
    2014-04-18T07:47:58+08:002014-04-18T07:47:58+08:00

    Eu tinha discutido isso em posts anteriores

    • Sep 05, 2012: A sobrecarga da invalidação frequente do cache de consulta vale a pena?
    • Sep 26, 2013: o valor de hit do cache de consulta não está mudando no meu banco de dados

    Os internos do InnoDB têm uma abordagem muito prática para o cache de consulta, pois microgerencia a invalidação da entrada do cache de consulta. Nos dias do MySQL 4.x, o cache de consulta foi desabilitado por padrão por causa do InnoDB. No MySQL 5.x, pode ser difícil. Os comentários de @akuzminsky mostram que os problemas locais giram em torno do InnoDB.

    Considerando que você está usando o Amazon RDS, você encontra os seguintes desafios

    • Alterar algumas configurações do InnoDB pode ser complicado
    • Algumas configurações do InnoDB não podem ser alteradas
    • Os aspectos de ajuste do InnoDB têm limites devido ao RDS

    Eu eliminaria qualquer trabalho de adivinhação e apenas deixaria o cache de consulta desativado. Se tiver um buffer pool maior (conforme sugerido no segundo comentário de @akuzminsky), você terá que migrar para um modelo de servidor maior ($$$ Cha-Ching $$$). Aqui estão os tamanhos do buffer pool para os modelos de servidor

    MODEL      max_connections innodb_buffer_pool_size
    ---------  --------------- -----------------------
    t1.micro   34                326107136 (  311M)
    m1-small   125              1179648000 ( 1125M,  1.097G)
    m1-large   623              5882511360 ( 5610M,  5.479G)
    m1-xlarge  1263            11922309120 (11370M, 11.103G)
    m2-xlarge  1441            13605273600 (12975M, 12.671G)
    m2-2xlarge 2900            27367833600 (26100M, 25.488G)
    m2-4xlarge 5816            54892953600 (52350M, 51.123G)
    
    • 4
  3. Ross
    2014-12-21T06:48:02+08:002014-12-21T06:48:02+08:00

    Realmente depende da divisão de leitura e gravação em seus dados em geral. Se a leitura for pesada, você economiza a carga da CPU no RDS usando o query_cache de maneira inteligente. No entanto, eu nunca recomendaria torná-lo padrão para ON, mas sim usar DEMAND (número 2 no parâmetro RDS) dessa forma, você pode usar SQL_CACHE em suas instruções de seleção para consultas particularmente complicadas para evitar potencialmente ir para o disco (que é muito lento em RDS geralmente) embora ainda não tenha query_cache e a expiração de dados assuma seu banco de dados de maneira fora de controle.

    O uso da opção 2 deve permitir que você mantenha seu query_cache_size pequeno e evite remoções enquanto ainda fornece espaço suficiente para que seus piores resultados de execução de consulta sejam armazenados em cache. Em uma situação de leitura pesada, isso rendeu bons aumentos de velocidade para nossas consultas mais lentas com um banco de dados RDS de 500 GB, sem sobrecarregar o sistema ao mesmo tempo.

    HTH

    • 2

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