Parâmetros de Sintonia do Servidor


Você pode determinar tamanho padrão do buffer usados pelo servidor mysqld com este comando:

shell> mysqld --help

Este comando produz uma lista de todas as opções do mysqld e variáveis configuráveis. A saída inclui os valores padrão das variáveis e se parece com isto:

back_log current value: 5
bdb_cache_size current value: 1048540
binlog_cache_size current value: 32768
connect_timeout current value: 5
delayed_insert_timeout current value: 300
delayed_insert_limit current value: 100
delayed_queue_size current value: 1000
flush_time current value: 0
interactive_timeout current value: 28800
join_buffer_size current value: 131072
key_buffer_size current value: 1048540
lower_case_nome_tabelas current value: 0
long_query_time current value: 10
max_allowed_packet current value: 1048576
max_binlog_cache_size current value: 4294967295
max_connections current value: 100
max_connect_errors current value: 10
max_delayed_threads current value: 20
max_heap_table_size current value: 16777216
max_join_size current value: 4294967295
max_sort_length current value: 1024
max_tmp_tables current value: 32
max_write_lock_count current value: 4294967295
myisam_sort_buffer_size current value: 8388608
net_buffer_length current value: 16384
net_retry_count current value: 10
net_read_timeout current value: 30
net_write_timeout current value: 60
read_buffer_size current value: 131072
record_rnd_buffer_size current value: 262144
slow_launch_time current value: 2
sort_buffer current value: 2097116
table_cache current value: 64
thread_concurrency current value: 10
tmp_table_size current value: 1048576
thread_stack current value: 131072
wait_timeout current value: 28800

Se existir um servidor mysqld em execução, você pode ver quais valores ele está usando atualmente para as variáveis executando esta instrução:

mysql> SHOW VARIABLES;

Você também pode ver algumas estatísticas e indicadores de status para um servidor em execução executando este comando:

mysql> SHOW STATUS;

Para encontrar uma descrição completa de todas as variáveis na seção SHOW VARIABLES neste manual. Leia "SHOW VARIABLES".

Para informação sobre variáveis de estado, veja "SHOW STATUS".

Variáveis de servidor e informação de status também pode ser obtido usando mysqladmin:

shell> mysqladmin variables
shell> mysqladmin extended-status

O MariaDB utiliza algorítmos que são muito escaláveis, portanto, normalmente você pode trabalhar com pouca memória. Entretanto, se você fornecer ao MariaDB mais memória, obterá um desempenho melhor.

Quando estiver ajustando um servidor MySQL, as duas variáveis mais importantes que devem ser usadas são key_buffer_size e table_cache. Você deve se sentir confiante que as duas estejam corretas antes de tentar alterar qualquer outra variável.

Os seguintes exemplos indicam alguns valores típicos de variáveis para diferentes configurações de tempo de execução. Os exemplos usam o script mysqld_safe e usam a sintaxe --name=value para definir a variável name com o valor value. Esta sintaxe está disponível a partir do MariaDB 4.0. Para versões mais antigas do MariaDB, tome as seguintes diferenças nas contas:

Se você possui pelo menos 256M de memória e várias tabelas e deseja obter o melhor desempenho com um número moderado de clientes, deve utilizar algo como:

shell> mysqld_safe --key_buffer_size=64M --table_cache=256 \
 --sort_buffer_size=4M --read_buffer_size=1M &

Se possui apenas 128M de memória e apenas algumas poucas tabelas, mas ainda deseja realizar várias ordenações, você pode utilizar:

shell> mysqld_safe --key_buffer_size=16M --sort_buffer_size=1M

Se você possuir pouca memória e tiver muitas conexões, utilize algo como:

shell> mysqld_safe --key_buffer_size=512K --sort_buffer_size=100K \
 --read_buffer_size=100K &

ou mesmo isto:

shell> mysqld_safe --key_buffer_size=512K --sort_buffer_size=16K \
 --table_cache=32 --read_buffer_size=8K -O net_buffer_length=1K &

Se você estiver executando um GROUP BY ou ORDER BY em tabelas que são muito maiores que sua memória disponível você deve aumentar o valor de record_rnd_buffer_size para acelerar a leitura de registros após a operação de ordenação.

Quando você tiver instalado o MySQL, o diretório support-files irá conter alguns arquivos exemplos do my.cnf, my-huge.cnf, my-large.cnf, my-medium.cnf e my-small.cnf, você pode usá-los como base para otimizar seu sistema.

Se você possui várias conexões simultâneas, problemas de trocas podem ocorrer a menos que o mysqld tenha sido configurado para usar muito pouca memória para cada conexão. O mysqld tem melhor performance se você tiver memória suficiente para todas as conexões, é claro.

Perceba que se você especifica uma opção na linha de comando para o mysqld, ou mysqld_safe ele permanece em efeito somente para aquela chamada do servidor. Para usar a opção toda vez que o servidor executa, coloque-o em um arquivo de opção.

Para ver os efeitos de uma alteração de parâmetro, faça algo como:

shell> mysqld --key_buffer_size=32m --help

Tenha certeza que a opção --help seja a última do comando; de outra forma o efeito de qualquer opções listadas depois na linha de comando não serão refletidas na saída.

Retornar