Menu fechado

Categoria: performance

MySQL & NoSQL – Memcached Plugin

Muita gente já deve ter ouvido falar nos bancos de dados NoSQL e uma das ferramentas NoSQL muito utilizada é o memcached, no qual adicionamos uma camada de cache entre a aplicação e o banco de dados. Desde a versão 5.6 do MySQL, foi disponibilizado um plugin de integração entre o MySQL e o Memcached. Neste artigo publicado no iMasters eu mostro como instalar e configurar esta integração. Gostou ? Ajude e Compartilhe!

Gostou ? Ajude e Compartilhe!

MySQL Fabric – Parte 1 Instalação

MySQL Fabric é uma ferramenta que está inclusa no MySQL Utilities que ajuda a gerenciar servidores MySQL. Ele funciona basicamente adicionando uma nova camada entre a aplicação e os servidores MySQL, que auxilia no processo de sharding e alta disponibilidade. Para instalar nosso ambiente com MySQL Fabric, vamos precisar de 4 servidores, eu utilizei os seguintes nomes e IPs: fabric1 (192.168.0.200) – fabric mysql1 (192.168.0.201) – mysql master mysql2 (192.168.0.202) – mysql slave mysql3 (192.168.0.203) – mysql slave Obs.: Estou rodando CentOS 6.5 em todos os servidores. 1. Adicione o repositório mysql nos 4 servidores, leia Instalar a versão mais recente do MySQL via yum para mais informações: rpm -i http://dev.mysql.com/get/mysql-community-release-el6-5.noarch.rpm yum update 2. Instale os pacotes mysql mysql-server mysql-utilities: yum install mysql mysql-server mysql-utilities chkconfig mysqld on /etc/init.d/mysqld start . . .

Gostou ? Ajude e Compartilhe!

Esquentando o InnoDB Buffer Pool

Uma das mais importantes configurações para quem usa InnoDB é o innodb_buffer_pool_size, ele basicamente armazena dados e índices em memória, quando o MySQL recebe uma query e as paginas que contem o resultado da pesquisa/índice estao armazenadas no buffer, o MySQL não precisar ler essas informações do disco, o que é muito mais rápido (velocidade da memória vs velocidade do disco) . Como estas informações estão armazenadas na memória, cada vez que o MySQL é re-iniciado, o buffer é apagado, e para “esquentar” o buffer normalmente leva-se algum tempo. Para agilizar este processo, vamos utilizar 2 variáveis para salvar e restaurar as referencias das paginas que estão armazenadas no buffer, esta é uma nova funcionalidade adicionada no MySQL 5.6 (essa opção já pode ser encontrada em algumas versões anteriores do . . .

Gostou ? Ajude e Compartilhe!

Por que Replicação Atrasa no MySQL?

Recentemente respondi algumas questões referente a lag(atraso) na replicação, o que percebi é que muita gente não intende corretamente como este processo funciona internamente no MySQL e o porque do lag acontecer: MySQL replication: most important config parameters for performance on slave server? mysql replication delay very serious Veja a figura abaixo, ela representa replicação assíncrona no MySQL, recomendo que você leia meu outro post sobre o assunto: “Como Funciona A Replicação No MySQL?” Como pode ser visto, existe uma grade diferença quanto ao ponto de entrada de dados no master e no slave, enquanto o master possui múltiplas threads inserindo/alterado/deletando dados ao mesmo tempo, no slave, existe somente uma única thread responsável por aplicar todas essas transações no banco de dados. Vamos imaginar que uma transação(UPDATE por exemplo) demorou . . .

Gostou ? Ajude e Compartilhe!

Utilizando o MySQL FullText Index Search

Hoje vamos falar sobre um recurso muito útil no MySQL, o Full Text Index e Search. Um recurso muito poderoso que hoje nas versões 5.5 esta disponível apenas para a Engine MyISAM mas como podemos ver na documentação do FullText no site do MySQL, nas versoes 5.6 estará também disponível para InnoDB. Normalmente quando se quer procurar uma palavra ou expressão em uma coluna usamos o LIKE CORINGA EXPRESSAO CORINGA (LIKE ‘%EXPRESSAO%’) caso estejamos procurando por 2 palavras ficaria LIKE ‘%PALAVRA1%PALAVRA2%) o que muita gente não sabe e que este processo eh custoso para o mysql e não performatico, para estes casos podemos usar o FullText index. O comando eh simples MATCH() … AGAINST (), onde MATCH especificamos a(s) coluna(s) que desejamos procurar, sim, podemos utilizar o full text para . . .

Gostou ? Ajude e Compartilhe!

Optimizar consultas em MySQL com query cache

  EDIT: Cuidado. Query Cache pode causar problemas de performance e escalabilidade em ambientes com muitas sessões simultâneas. Use com cuidado. Hoje vamos falar de uma ferramenta bem bacana do MySQL, o query cache. o query cache salva resultados de SELECT’s já executados e que seus dados brutos não tenham sido alterados tornando assim o tempo de resposta da query muito mais otimizada, pois ele vai buscar da memória e não do disco. Ele pode trabalhar de 3 maneiras diferentes, no nosso my.ini dentro do grupo [mysqld]: query_cache_type = 0 Desligado query_cache_type = 1 Ligado para todas as query’s query_cache_type = 2 Ligado sobre demanda Mas qual a melhor maneira de utilizar o query cache? Tendo em vista que toda a vez que você altera dados em alguma tabela, ele invalida . . .

Gostou ? Ajude e Compartilhe!