CyberTek - the future at the present!
Google

Otimização do MySQL

Publicado por: admin (19 jun.)

Não há tempo para falar sobre como criar tabelas optimizado para proporcionar melhores resultados. Lembro-me apenas que os campos indexados melhorar muito o tempo de execução. Fale em vez de algum truque para o tornar mais eficaz que o MySQL é normalmente instalado na maioria distro sem muitos parâmetros de afinação. As informações referem uma distro Linux, mas pode ser facilmente adaptado a outros SO.

O ficheiro de configuração é normalmente localizado em / etc / my.ini.

Eempio de my.ini:

[mysqld]
datadir = / var / lib / mysql
socket = / var / lib / mysql / mysql.sock
set-variable = key_buffer = 64M
set-variable = max_user_connections = 100
set-variable = query_cache_size = 64M
# Predefinido para utilizar senha antiga formato para a compatibilidade com o MySQL 3.x
# Clientes (aqueles que utilizam o mysqlclient10 compatibilidade pacote).
old_passwords = 1

[mysql.server]
user = mysql
basedir = / var / lib

[mysqld_safe]
err-log = / var / log / mysqld.log
pid-file = / var / run / mysqld / mysqld.pid

memórias: a memória de qualquer incremeto irá obter um banco de dados muito mais rápido. Em seguida, definir os amortecedores com base na quantidade de memória disponível, tendo em conta o consumo feita pelo sistema operacional e outros serviços e aplicações em uso. Se você atribuir demasiada memória enquanto não ter uma disposição pode executar em seu desempenho global do sistema.

Wait_timeout: representa o tempo que decorre antes que seja fechada automaticamente conectar a MySQL, devido à inatividade. Menor número é o melhor desempenho. Neste caso, você deve também desempenhar o tipo de conexão e do seu alegado tempo para calibrar o melhor parâmetro.

back_log: Controla quantas conexões simultâneas pode sustentar enquanto Mysql cria nova discussão. Quanto menor o número, maior a velocidade. Cuidado, é fácil para não degradar o desempenho através da definição deste parâmetro corretamente, use este apenas quando absolutamente necessário.

Max_user_connections: Define o número máximo de conexões permitido para um usuário. É muito útil em sistemas onde o mesmo servidor MySQL tem acesso a vários usuários simultaneamente.

Delayed_queue_size: número de linhas junto com INSERT DELAYED. Será menos ao longo das linhas, o mais rápido Mysql.

Sort_buffer_size: define o tamanho do buffer alocado para a execução das cláusulas ORDER BY e GROUP BY. Para fazer buscas mais eficientes é definir este parâmetro para um valor superior a 2M.

Table_cache: controla o número de tabelas abertas para todas as threads, o aumento dessa variável aumentará as tabelas carregadas simultaneamente e para a execução das Mysql será muito mais rápido. Atenção para esse parâmetro, os sistemas operacionais têm um limite de ponteiros para abrir arquivos de uma só vez, se você exceder esse limite poderá incorrer em qualquer sistema de avaria.

Thread_cache_size: Define o número de threads para se manter em cache. Esta característica torna o uso de fios muito rápida.

O SHOW STATUS comando nos ajuda a controlar em tempo real as variáveis, que mais do que outros para nos ajudar a compreender o que são as mais significativas melhorias que podemos fazer:

  • Handler_read_first: Indica quantas vezes o primeiro registro foi lido a partir de uma tabela. Se isto acontece com freqüência, isso significa que a tabela não foi indexado corretamente.
  • Innodb_buffer_pool_wait_free: indica o número de vezes que o MySQL tem que esperar para a lavagem de páginas de memória. Se o valor de retorno é alta, então o buffer pool tamanho não foi corretamente configurado para o montante das operações sujeitas a escrever pelo servidor.
  • Key_reads: indica o número de vezes que o MySQL acessa o sistema de arquivos para o banco de dados índices. Isso atrasa a velocidade de execução da consulta, por isso, se esse valor é alto, então isso significa que o armazenamento-chave é demasiado pequena e deve ser aumentada.
  • Max_used_connections: Indica o número máximo de conexões MySQL que tiveram de abrir durante a última inicialização. Por um lado isso representa um verdadeiro marco (que ajuda a decidir o número máximo de conexões que o servidor pode suportar) eo outro é apresentado como um analisador de tráfego convenientes.
  • Open_tables: Indica o número atual de tabelas abertas. Este valor deve ser analisado em combinação com o tamanho do cache da tabela. Normalmente o tamanho dos table_cache deve ser definido mais elevados para essa variável. Se o valor da open_tables é muito inferior table_cache para evitar problemas de performance, é, pois, além de reduzir o tamanho do cache. Se o valor da open_tables é muito alta e aproxima-se o tamanho do cache e, em seguida, levantá-la table_cache.
  • Select_full_join: O número de aderir plenamente o MySQL tem realizado para atender às demandas dos clientes. Um valor elevado indica que, em vez de usar índices, o MySQL tem sido forçada a realizar plena adesão. Isto sugere a necessidade de um forte índice dessas tabelas.
  • Slow_queries: indica o número de consultas que levou mais tempo do que o normal para ser feito. Um elevado valor deve levar-nos a analisar o Slow Query Log para identificar quais são os lentos consulta para otimizar.
  • Threads_connected: Indica o número total de clientes que estão conectados ao servidor em tal momento.
  • Created_tmp_disk_tables: indica o número de tabelas temporárias, as quais foram criadas no disco, em vez de memória. Dado que o acesso a tabelas em um disco é geralmente mais lento do que memória, o conteúdo da variável é inversamente proporcional à velocidade com que as consultas são executar o comando CREATE TEMPORARY TABLE.
  • Uptime: Mostra quantos segundos é sobre o serviço.
Publicado em: mysql, dicas

Adicionar um Comentário

Powered by CyberTek - Assistência Remota