Você está na página 1de 12

TUNING MySQL SERVER 5.1/5.

By: Alex Clemente da Silva


Formação Acadêmica:
Graduação: Gestão Financeira – Universidade Ibirapuera – 2012 - Trancado
Graduação: Tecnologia em Redes de Computadores – Faculdade Sumaré – 2015 – Concluído
Preparatório: IT Essentials - CISCO
Preparatório: CCNA Exploration - CISCO
Preparatório: Windows Server 2008/2012 – MVA
Preparatório: LPI 101/102
Preparatório: LPI 201/202
Auto estudo: RHCSA
Auto estudo: Administração ZABBIX
Auto estudo: Administração Nagios Core
Experiencias:
Técnico de Service Desk I e II: Hospital Israelita Albert Einstein (todo! Soluções em Tenologias)
Operador de Sala Técnica: Shopping JK IGUATEMI (todo! Soluções em Tenologias)
Suporte Técnico – NOC: todo! Soluções em Tenologias
Analista de Suporte Linux e ZABBIX: todo! Soluções em Tenologias
Analista de Operações Linux: UOL
> Sobre o MySQL e MariaDB em termos de compatibilidade

- Na prática, MariaDB é um binary drop em substituição da mesma versão do MySQL (por exemplo MySQL 5.1 -> MariaDB 5.1,
MariaDB 5.2 e MariaDB 5.3 são compatíveis. O MySQL 5.5 é com o MariaDB 5.5). O que isto quer dizer?

Arquivos de definição de tabelas e dados (.frm) são binariamente compatíveis.


Todas as APIs clientes, protocolos e estruturas são identicas.
Todos os nomes de arquivo, binários, caminhos, portas, sockets, etc... deverão ser os mesmos.
Todos os conectores do MySQL (PHP, Perl, Python, Java, .NET, MyODBC, Ruby, o conector MySQL, etc) funcionam inalterados
com MariaDB.
Existem alguns problemas de instalação com PHP5 dos que você deveria estar ciente (um bug em como o antigo cliente PHP5
verifica a compatibilidade de libs.
O pacote mysql-client funciona também com o servidor MariaDB
> Instalando o CentOS/Debian dedicado a banco de dados

- Arquitetura do sistema
- Layourt de disco
- Tempo de acesso ao disco (noatime)
- Permissões na partição
- Runlevel do servidor
- Serviços habilitados
- Ajustar o sysctl

> Instalando o MySQL e MariaDB


- Versão do banco
- Qual SO mais adequado?
- Pós instalação do DB
> Configurando o tipo de armazenamento (Engine) no banco

- default_storage_engine

> Ajustando o limite de consumo de memória para MySAM


> Ajustando os limites de buffer (sort,join,read,max_join) do banco

- key_buffer_size
- sort_buffer_size
- join_buffer_size
- read_buffer_size
- max_join_size
> Ajustando a segurança do banco e limite de inserção de dados

- mysql_secure_installation
- Flush privileges
- max_allowed_packet
- max_connect_errors

> Definindo o DATASTORAGE e SQL_MODE

- sql_mode
- datadir

> Habilitando logs, tempo de querys e log_bin

- general_log
- expire_logs_days
- long_query_time
- sync_binlog
> Configurando logs de erros e logs de querys lentas

- log_error
- log_queries_not_using_indexes
- slow_query_log
- slow_query_log_file

> Ajustando o tempo de time_out

- connect_timeout
- interactive_timeout
- wait_timeout

> Configurando o limite de uso de processadores para o banco

- innodb_thread_concurrency
- thread_concurrency
> Configurando os valores de INNODB_IO, threads e IO_CAPACITY

- innodb_io_capacity
- innodb_io_capacity_max
- innodb_read_io_threads
- innodb_write_io_threads

> Configurando o limite de conexões no banco e conexões por usuários

- max_connections
- max_user_connections

> Configurando o tamanho das query_cache e query_size

- query_cache_type
- query_cache_size
> Ajustando tamanho e cache das tabelas do banco

- tmp_table_size
- max_heap_table_size
- open_files_limit
- table_open_cache

> Configurando os logs do InnoDB

- innodb_log_files_in_group =2
- innodb_log_file_size
- innodb_log_buffer_size
- innodb_flush_log_at_trx_commit
- innodb_lock_wait_timeout

> Configurando o limite de memória do InnoDB

- innodb_buffer_pool_size
- innodb_additional_mem_pool_size
- innodb_data_file_path
> Testando e monitorando a performance do banco 100%

- mysqlslap --user=user –pass=pass --auto-generate-sql --concurrency=100 --number-of-queries=1000 --number-char-cols=10


--number-int-cols=10 --iterations=100
FIM

Você também pode gostar