MySQL é o sistema de gerenciamento de banco de dados relacional de código aberto que mais cresce, com 100 milhões de downloads até a data. É uma escolha popular de banco de dados para uso em aplicativos da Web e atualmente é usado por muitos sites grandes, incluindo Facebook, Twitter, Wikipedia, Flickr, YouTube etc. Agora, vamos descobrir os 10 principais fatos e dicas interessantes sobre o MySQL.
Fatos e dicas interessantes sobre o MySQL
1. O MySQL suporta até 64 índices por tabela. Cada índice pode consistir de 1 a 16 colunas. O tamanho máximo do índice é 1000 bytes (767 para InnoDB).
2. O tamanho máximo de uma linha em uma tabela MySQL é 65.535 bytes. E o valor máximo de Signed Integer é 2.147.483.647 e o valor de Unsigned Integer é 4.294.967.295. Em uma tabela mista com CHAR e VARCHAR, o MySQL mudará os CHARs para VARCHARs.
3. Se um índice PRIMARY KEY ou UNIQUE consiste em apenas uma coluna que possui um tipo inteiro, você também pode se referir à coluna como “_rowid” em instruções SELECT.
4. Para alterar o valor do AUTO_INCREMENT, use “ALTER TABLE
5. Para restringir o acesso público ao MySQL, use a opção “skip-networking” no arquivo de configuração. Quando habilitado, o MySQL só escuta conexões de soquetes locais e ignora todas as portas TCP. E o parâmetro “bind-address” que é definido como “127.0.0.1” restringe o MySQL para ser acessível apenas pelo localhost.
6. Se o MySQL tiver muitas conexões estabelecidas (ou seja, um site sem conexões persistentes), você pode melhorar o desempenho configurando thread_cache_size para um valor diferente de zero. 16 é um bom valor para começar. Aumente o valor até que seus threads_created não cresçam muito rapidamente.
7. NO_AUTO_VALUE_ON_ZERO suprime o incremento automático para 0. Somente NULL gera o próximo número de seqüência. Este modo pode ser útil se 0 foi armazenado na coluna AUTO_INCREMENT de uma tabela. (A propósito, armazenar 0 não é uma prática recomendada.)
8. As opções de configuração “innodb_analyze_is_persistent”, “innodb_stats_persistent_sample_pages” e “innodb_stats_transient_sample_pages” fornecem maior precisão das estatísticas de índice do InnoDB e consistência nas reinicializações do MySQL. O InnoDB pré-computa estatísticas que ajudam o otimizador a decidir quais índices usar em uma consulta, amostrando uma parte do índice. Você pode ajustar a quantidade de amostragem que o InnoDB faz para cada índice. As estatísticas resultantes agora podem persistir nas reinicializações do servidor, em vez de serem recalculadas (e possivelmente alteradas) devido a reinicializações e alguns eventos de tempo de execução. As estatísticas mais precisas podem melhorar o desempenho da consulta e o aspecto de persistência pode manter o desempenho da consulta estável. Quando o recurso de estatísticas persistentes está ativado, as estatísticas só são recalculadas quando você executa explicitamente ANALYZE TABLE para a tabela.
9. O InnoDB libera a memória associada a uma tabela aberta para facilitar a carga de memória em sistemas com um grande número de tabelas. Um algoritmo LRU seleciona as tabelas que passaram mais tempo sem serem acessadas. Para reservar mais memória para tabelas abertas, aumente o valor da opção de configuração –table_definition_cache=#.
10. Defina o parâmetro table_cache para corresponder ao número de tabelas abertas e conexões simultâneas. Observe o valor de open_tables e se estiver crescendo rapidamente, você precisa aumentar o tamanho de “table_cache”. E para o parâmetro “open_file_limit” defina este limite como 20+max_connections+table_cache*2. Se você tiver consultas complexas, “sort_buffer_size” e “tmp_table_size” provavelmente serão muito importantes. Os valores dependerão da complexidade da consulta e dos recursos disponíveis, mas 4Mb e 32Mb, respectivamente, são pontos de partida recomendados.
Nota:Estes são valores “por conexão”. Portanto, considere sua carga e recurso disponível ao definir esses parâmetros. Por exemplo, sort_buffer_size é alocado apenas se o MySQL precisar fazer uma classificação, tome cuidado para não ficar sem memória.