Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Devo sacrificar meu innodb_buufer_pool _size/RAM para liberar espaço para query_cache_size ?


Em junho de 2014, respondi https://dba.stackexchange.com/questions/66774/why-query-cache-type-is-disabled-by-default-start-from-mysql-5 -6/66796#66796

Nesse post, discuti como o InnoDB microgerencia as mudanças entre o InnoDB Buffer Pool e o Query Cache.

NÃO USANDO O CACHE DE CONSULTAS


A resposta mais simples seria apenas desabilitar o cache de consulta, mas há um problema:você deve definir tanto query_cache_size e query_cache_type para zero(0).

Se você não definir query_cache_type para zero(0), o microgerenciamento de mudanças ainda ocorre. Isso é verificado pelo Parágrafo 8 do MySQL Documentação "Configuração do Cache de Consulta" diz

USANDO O CACHE DE CONSULTAS


Se você realmente deseja usar o Query Cache, precisa estudar seus dados. Basicamente, você precisa saber o tamanho dos seus resultados. Você então definiria query_cache_limit e query_cache_min_res_unit para acomodar o conjunto de resultados de tamanho médio, bem como o conjunto de resultados de tamanho máximo.

Como alternativa, você pode habilitar o Query Cache globalmente, mas desabilitar seu uso em sua sessão de banco de dados, conforme indicado em Parágrafo 9 :

SUA PERGUNTA REAL


The Query Cache, InnoDB Buffer Pool, Per Connection Threads (Veja minha postagem https://dba.stackexchange.com/questions/16969/how-costly-is-opening-and-closing-of-a-db-connection/ 16973#16973 ), e todos os sistemas operacionais competem por RAM.

Ao observar apenas o Query Cache e o InnoDB Buffer Pool, você precisa ver quanto espaço está livre no InnoDB Buffer Pool depois que o MySQL estiver em execução por dias ou semanas.

Você pode executar esta consulta
SELECT variable_value / 64 free_mb
FROM information_schema.global_status
WHERE variable_name='Innodb_buffer_pool_pages_free';

Isso lhe dirá o quanto você pode diminuir o InnoDB Buffer Pool. Você poderia então aumentar o Cache de Consulta por esse tamanho. Se essa consulta retornar menos que 1024, provavelmente não valerá a pena o esforço. Você terá o espaço adicional da RAM ou simplesmente desabilitará o Cache de Consulta.