Desenvolvimento

Ξ Deixe um comentário

MySQL 5.5 – Razões para Escolher MySQL: Performance e Escalabilidade

publicado por Renato Medina

Olá, hoje estou fazendo uma tradução livre do whitepaper Top 10 Reasons to Choose MySQL for Web-based Applications da Oracle. Neste artigo a performance e escalabilidade da ferramenta é abordada em vários aspectos que fazem toda a diferença ao escolher o seu banco de dados ou mesmo a versão,  espero que gostem.

Em nosso mundo online, competição esta sempre a um click (ou toque na tela) de distância, e respostas rápidas para requisições e atividades de clientes são portanto cruciais. O banco de dados de uma aplicação web precisa oferecer performance extrema para operações de leituras (query simples ou complexa) e escrita.

Outro fator de performance é que este mesmo tipo de performance extrema deve exibir problemas de sobrecarga de dados (ex.: milhares de conexões simutâneas) ou volumes de dados (GB para TB).

Aplicações web precisam estar preparadas para rápidas mudanças em uma crescente quantidade de clientes, sem experimentar nenhuma interrupção nos seus serviços ao cliente.

Uma marca do MySQL é sua excepcional performance e escalabilidade, o qual faz tantas empresas na web utilizarem esta ferramenta. O MySQL utiliza de vários mecanismos para entregar uma boa performance em seu uso, tais quais:

InnoDB como novo Storage Engine padrão no MySQL 5.5

InnoDB é o mais largamente usado storage engine na Web/Web 2.0, eCommerce, mídias em geral e aplicações de entretenimento construídas com MySQL, e por boas razões; InnoDB fornece alta eficiência ACID com seus controles transacionais e sua arquitetura única que garante uma excelente performance e escalabilidade. Mais, InnoDB é estruturalmente desenhado para manipular aplicações transacionais que requerem recuperação em suas paradas, integridade referencial, e altos leveis de concorrência entre usuários.

Uma das mais notáveis melhorias no MySQL 5.5 é que o InnoDB é agora o storage engine padrão para novas tabelas criadas, permitindo usuários desenvolver aplicações transacionais sem necessidade de alterar as configurações do serviço. Para MySQL 5.5 InnoDb foi reestruturado de forma que ele foi otimizado para tirar o máximo de vantagens das capacidades de processadores, hardwares e do sistema operacional.

Em testes usando o MySQL 5.5 release candidate comparado com o MySQL 5.1, resultados demonstraram claramente as melhorias em performance obtidas:

  • No Windows: até 1500% de ganhos em performance para operações de Leitura/Escrita e 500% em apenas Leitura.
  • No Linux: até 360% de ganhos em performance em Leitura/Escrita e outros 200% em apenas Leitura.

Mais informações estão disponíveis em “What’s New in MySQL 5.5” whitepaper em:

http://www.mysql.com/why-mysql/white-papers/mysql-wp-whatsnew-mysql-55.php

Replicação MySQL

MySQL tem sido amplamente posicionado por alguns dos principais websites para alcançar níveis extremos de escalabilidade. DBAs podem simples e rapidamente criar várias réplicas de seus bancos de dados em alta escala bem além das limitações de capacidade de uma instância simples, habilitando eles manipularem uma crescente carga no banco de dados.

Rápida manipulação de Conexões

MySQL oferece uma excelente manipulação de thread/connection cache onde rapidamente estabelece solicitações de novas conexões e finaliza outras já existentes. O pool de conexões do MySQL sempre tem novos threads prontos para servir requisições de seus clientes fazendo com que não haja criação de novas conexões do zero. Isso significa que conectando e desconectando de uma base MySQL não prejudica sua performance.

Utilizando o poder da memória

MySQL explora os avanços na abundância de memória dos servidores atuais para garantir a máxima performance. Além de utilizar padrões da industria em dados e indíces para manter a referencia da informação na memória para rápido acesso, ele também possui caracteristicas próprias tais como:

Primeiramente, tabelas em memória para respostas extremamente rápidas. O MySQL Cluster fornece ainda a opção de uso de tabelas em memórias como parte do schema do banco de dados. Essas mesmas tabelas mantém sua alta performance mesmo que o discos se encontrem na situação “warm”.

Adicionalmente, MySQL fornece um query cache que é especialmente desenhado para aplicações web modernas onde a repetição de das mesmas querys é elevada. O MySQL não armazena somente a query enviada pela aplicação mas também o result set da mesma. Notamos que isso é  completamente diferente da situação de reconstrução de um result set a partir da memória – neste caso este result set não é recalculado. Esta forma de cache se mostra extremamente útil para aplicações web onde há necessidade de prover a mesma e a mesma informação novamente.

Outras propriedades relacionadas com a performance MySQL

MySQL contém várias outras configurações de performance que ajudam aplicações web a garantir suas necessidades de demanda atual. Por exemplo, a partição de dados esta disponível para aplicações que necessitam horizontalmente separar seus dados em uma tabela e índices associados. O MySQL optimazer é inteligente o suficiente para escanear apenas as partições necessárias para satisfazer a query do usuário final, no qual vai reduzir drasticamente o tempo de resposta do banco. Completo suporte a range, hash, list e composite/sub partitioning está disponível entre várias colunas, assim como tipos de dados texto e númericos.

Finalmente, MySQL contém todas as funções e utilitários para ajudar profissionais Web a desenhar suas aplicações fornecendo altos indices de performance. Inúmeros tipos de índices (clustered, full-text, hash, spatial, b-tree), ilimitado row-level locking coupled com MVCC (no qual resulta em um pequeno lock da tabela, caso haja) e muito mais fazem do MySQL uma excelente opção para esses esperados bancos de dados de alta performance.

Bem, por hoje é isso, em breve estarei postando mais novidades sobre esse excelente SGDB. Abraços e bom MySQL Timing!

Autor

Renato Medina é certificado MySQL CMDEV/CMDBA e Magento Developer. Trabalha como PHP e MySQL há mais de 7 anos. Já desenvolveu vários softwares para empresas dos mais diversos ramos. Hoje vive em Melbourne, Australia. Mantém o blog http://blog.mdnsolutions.com onde fala sobre desenvolvimento, PHP, frameworks, MySQL entre outros assuntos relacionados.

Renato Medina

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes