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 / 217577
Accepted
shaoyihe
shaoyihe
Asked: 2018-09-14 17:38:16 +0800 CST2018-09-14 17:38:16 +0800 CST 2018-09-14 17:38:16 +0800 CST

Por que o MySQL removeu o recurso de cache de consulta após a versão 8.0?

  • 772

Por que o MySQL removeu o recurso de cache de consulta após a versão 8.0?

mysql query-cache
  • 3 3 respostas
  • 22091 Views

3 respostas

  • Voted
  1. Best Answer
    danblack
    2018-09-14T17:42:19+08:002018-09-14T17:42:19+08:00

    Há um blog detalhado da equipe do servidor MySQL sobre isso, onde Matt Lord diz:

    O cache de consulta foi desabilitado por padrão desde o MySQL 5.6 (2013), pois é conhecido por não ser dimensionado com cargas de trabalho de alto rendimento em máquinas com vários núcleos.

    Consideramos quais melhorias poderíamos fazer no cache de consulta versus otimizações que poderíamos fazer que fornecem melhorias para todas as cargas de trabalho.

    Embora essas escolhas sejam ortogonais, os recursos de engenharia são finitos. Isso quer dizer que estamos mudando a estratégia para investir em melhorias que são mais aplicáveis ​​a todas as cargas de trabalho.

    • 18
  2. RolandoMySQLDBA
    2018-09-14T17:52:58+08:002018-09-14T17:52:58+08:00

    Boa despedida!!!

    É um desafio para a maioria dos desenvolvedores de banco de dados estimar corretamente o tamanho dos conjuntos de resultados mais comuns em seus aplicativos. Ter um cache de consulta grande era apenas um grande curativo para isso.

    Há uma razão maior que prenunciou o fim do cache de consulta: Quatro anos atrás ( June 07, 2014), respondi ao post Por que query_cache_type está desabilitado por padrão a partir do MySQL 5.6? . Resumindo, o cache de consulta estava sempre inspecionando o InnoDB Buffer Pool em busca de alterações. Você pode encontrar isso nas páginas 209-215 do MySQL de alto desempenho (2ª edição) .

    Eu mencionei isso ao longo dos anos:

    • Sep 05, 2012: A sobrecarga da invalidação frequente do cache de consulta vale a pena?
    • Sep 25, 2013: invalidando entradas de cache de consulta (chave)
    • Sep 26, 2013: o valor de acerto do cache de consulta não está mudando no meu banco de dados
    • Dec 23, 2013: MySQL com alto uso de CPU e memória

    Cache de consulta RIP !!!

    • 11
  3. Rick James
    2018-10-06T13:54:24+08:002018-10-06T13:54:24+08:00

    (Concordo com a outra resposta, mas aqui está o meu valor de 2 centavos.)

    Conforme implementado, ...

    • O QC não pode funcionar com Galera ou Group Replication, os quais estão ganhando mais força na arena de HA.

    • Quando query_cache_sizeficou grande, ficou menos eficiente. Isso se deve a ineficiências na "poda". (Observação: o Aurora o reimplementou e parece ter corrigido esse problema.)

    • Há uma sobrecarga em cada SELECT porque não sabe se o QC entrará em jogo. Décadas atrás, isso era estimado em 11%. Até se livrar do QC, a única solução era fazer as duas coisas query_cache_size = 0 e query_cache_type = 0 no arquivo de configuração. (Poucas pessoas perceberam que ambos eram necessários.)

    • No servidor de produção típico, as inserções acontecem com frequência. Como cada inserção causava uma poda de todas as entradas para essa(s) tabela(s), o QC era praticamente inútil para essas tabelas.

    • Talvez 95% das centenas de sistemas que revisei quanto a problemas de desempenho estejam melhores sem o CQ.

    • 6

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