Ir para

O que é o MySQL?

O MySQL é um dos bancos de dados relacionais de código aberto mais conhecidos do mundo. Essa popularidade é resultado de seu uso generalizado em sites de comércio eletrônico, mídias sociais e aplicativos, entre eles o Drupal, Joomla, Magento e o WordPress. Ele também é parte essencial da amplamente utilizada pilha de aplicativos da Web Linux-Apache-MySQL-PHP/Perl/Python (LAMP) , que serve de base para muitos aplicativos, sites e serviços conhecidos. Além disso, é classificado como o segundo banco de dados mais usado no mundo, pelo DB-Engines.

Saiba como o banco de dados relacional gerenciado do Google Cloud, o Cloud SQL para MySQL, pode ajudar a reduzir custos operacionais e melhorar a eficiência.

MySQL definido

O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto. Assim como em outros bancos de dados relacionais, o MySQL armazena dados em tabelas compostas de linhas e colunas. Os usuários podem definir, manipular, controlar e consultar dados usando a linguagem de consulta estruturada, mais conhecida como SQL. Como o MySQL é de código aberto, ele inclui vários recursos que têm sido desenvolvidos em estreita colaboração com os usuários já por mais de 25 anos.

O software MySQL tem código aberto

O MySQL é de código aberto, o que significa que está disponível para uso sem custo financeiro, de acordo com os termos de Licença Pública Geral GNU. Isso também significa que qualquer pessoa pode modificar o código-fonte do software para uso próprio. Isso levou à ramificação do MySQL para outras variantes de banco de dados, como o MariaDB e o Percona Server for MySQL. O MySQL também está disponível para uso comercial sob outras licenças.

Banco de dados relacional

O MySQL pertence a uma categoria de bancos de dados chamada sistemas de gerenciamento de banco de dados relacional (RDBMS). Um banco de dados relacional é um conjunto de informações que organiza dados em relações predefinidas, em que os dados são armazenados em uma ou mais tabelas (ou "relações") de colunas e linhas, facilitando a visualização e a compreensão de como as diferentes estruturas de dados se relacionam. Os relacionamentos são uma conexão lógica entre diferentes tabelas, que se estabelecem com base na interação entre estas.

História

O MySQL foi criado como uma extensão da linguagem de programação comercial, SQL, com base no modelo relacional descrito no trabalho de Edgar F. Codd. A empresa sueca MySQL AB, fundada por David Axmark, Allan Larsson e Michael Widenius, desenvolveu e lançou o MySQL em 1995. O nome "MySQL" é uma combinação do nome da filha de Michael Wildenius, "My", e "SQL", que se refere à Structured Query Language (Linguagem de consulta estruturada). A Sun Microsystems adquiriu a MySQL AB em 2008. No momento, o MySQL pertence à Oracle Corporation, após a aquisição da Sun Microsystems, em 2010.

O MySQL foi desenvolvido originalmente nas linguagens de programação C e C++ e se popularizou em diversas versões por muitos anos, devido à disponibilidade em muitos sistemas operacionais reservados e de código aberto. A versão mais recente do banco de dados, a versão 8.0 do MySQL, foi lançada em 2018.

Ramificações

O projeto do MySQL passou por várias ramificações ao longo dos anos, por vários motivos, sendo que muitas já não existem. Um dos projetos ramificados restantes é o MariaDB e o Percona Server para MySQL. O MariaDB foi uma ramificação dos criadores originais para garantir que o MySQL continuasse sendo de código aberto, após a aquisição da Oracle ter gerado preocupações sobre a comercialização. O Percona Server for MySQL é outra distribuição de código aberto do MySQL que pretende manter a compatibilidade total com o MySQL. Saiba mais sobre as versões do MySQL e o ecossistema completo relacionado.

Interface do usuário

O MySQL pode ser acessado por meio de uma interface gráfica do usuário (GUI) ou de ferramentas de interface de linha de comando. 

Interface gráfica do usuário (GUI)

As GUIs oferecem um ambiente integrado, composto de botões e widgets de interação, que tornam a consulta e o desenvolvimento de aplicativos uma experiência visual, em vez de usar comandos baseados em texto como em uma interface de linha de comando. Há muitas GUIs do MySQL desenvolvidas pelo projeto de código aberto e por integradores de terceiros. Uma das mais conhecidas é o MySQL Workbench, que também é de código aberto e foi desenvolvido pela MySQL AB. Algumas outras GUIs conhecidas são a phpMyAdmin, uma ferramenta de administração conhecida por desenvolver aplicativos da Web, e a HeidiSQL, ferramenta de administração de código aberto que pode ser usada para administrar outros bancos de dados, além do MySQL.

Linha de comando

O MySQL também pode ser acessado com ferramentas de linha de comando. Essas ferramentas, também conhecidas como utilitários do MySQL, são fornecidas com a distribuição do MySQL e invocadas com comandos de texto no shell do MySQL ou em outras ferramentas de interface de linha de comando, como a Percona Toolkit.

Como implantar o MySQL

Um usuário pode implantar o MySQL manualmente na própria máquina física usando o código-fonte aberto ou pode simplesmente fazer o download de uma das distribuições disponibilizadas em pacotes. Geralmente, o MySQL é instalado em uma única instância ou máquina com escalonamento vertical, o que visa prioritariamente melhorar o desempenho. No entanto, o MySQL pode ser definido em uma configuração replicada com um nó primário e muitos nós secundários, que podem ser promovidos a principais em caso de falha da instância.

Outra forma cada vez mais conhecida de hospedar o MySQL é através de provedores de serviços em nuvem (CSPs). Há algumas maneiras de implantar o MySQL no ambiente de um provedor de serviços em nuvem. Uma delas é instalar o MySQL diretamente em uma máquina virtual e gerenciá-lo de maneira automática. A outra diz respeito ao uso de ofertas gerenciadas de provedores de serviços em nuvem que facilitam a administração do MySQL, cuidando de muitos aspectos operacionais do gerenciamento dele. O Google Cloud oferece um serviço gerenciado através do Cloud SQL. O Cloud SQL para MySQL é um serviço de banco de dados totalmente gerenciado que ajuda a configurar, manter, gerenciar e administrar seus bancos de dados relacionais MySQL no Google Cloud, reduzindo o trabalho dos administradores de banco de dados e ajudando as organizações a inovar através do oferecimento de serviços de valor agregado de segurança, alta disponibilidade e observabilidade. Saiba como configurar uma instância do Cloud SQL do MySQL neste artigo sobre práticas recomendadas de configuração de uma instância do Cloud SQL para MySQL. Migrar para o Cloud SQL para MySQL do MySQL local ou de outro banco de dados em um provedor de serviços na nuvem é muito fácil e simples com muitas ferramentas e opções disponíveis para o usuário.

Para entender as vantagens e as diferenças entre a oferta totalmente gerenciada do Cloud SQL para MySQL e o MySQL autogerenciado, acesse o artigo sobre as opções de hospedagem do MySQL.

Benefícios do MySQL

O MySQL é rápido, confiável, escalonável e fácil de usar. O MySQL pode ser executado de maneira confortável em um computador ou laptop, junto com outros aplicativos, servidores da Web e assim por diante, exigindo pouca ou nenhuma atenção. Se uma máquina inteira for dedicada ao MySQL, será possível ajustar as configurações para aproveitar toda a memória, energia da CPU e capacidade de E/S disponíveis. O MySQL também pode ser escalonado para clusters de máquinas que estejam conectados em rede.

Há muitas outras vantagens em usar o MySQL para gerenciar e armazenar seus dados, entre elas:

Alta disponibilidade

A alta disponibilidade (HA, na sigla em inglês) no MySQL refere-se à capacidade do mecanismo de banco de dados de operar por um período prolongado sem falhas. Pode ser complexo obter alta disponibilidade no MySQL, já que ela depende dos requisitos de disponibilidade específicos de cada usuário e de como o MySQL está sendo implantado. Para configurar a alta disponibilidade no MySQL, os usuários precisam se preocupar com a replicação dos dados, a detecção de falhas, os mecanismos de failover e failback, além do redirecionamento do tráfego do banco de dados para a instância secundária após um failover. Com o Cloud SQL para MySQL, a alta disponibilidade se torna um processo simples e fácil. Saiba mais sobre a alta disponibilidade para MySQL no Google Compute Engine ou a experiência de alta disponibilidade totalmente gerenciada do Cloud SQL para MySQL.

Segurança

As considerações de segurança do MySQL podem abranger uma ampla variedade de fatores. Alguns são importantes, sobre a proteção de dados, como a proteção contra a corrupção de dados por meio de mecanismos de redundância de dados e processos gerais de segurança, como senhas e privilégios, controle de acesso e segurança de rede. Saiba mais sobre a segurança no Cloud SQL para MySQL, a oferta MySQL totalmente gerenciada do Google Cloud.

Backup e restauração

O MySQL é compatível com o backup e a recuperação de dados por vários mecanismos, incluindo ferramentas de terceiros. Algumas maneiras de fazer backup e restaurar o MySQL são através do utilitário Magento, backups incrementais usando registros binários e replicação. O Cloud SQL para MySQL oferece recursos próprios de backup e restauração que permitem backups automatizados ou sob demanda. Saiba mais sobre eles.

Flexibilidade

É fácil adicionar, atualizar ou excluir tabelas, relações e fazer outras alterações em dados sempre que necessário, sem alterar a estrutura geral do banco de dados ou afetar os aplicativos existentes.

Fácil de usar

É fácil executar consultas complexas usando SQL. Isso permite que os usuários iniciantes interajam de maneira intuitiva com o banco de dados.

Desempenho

A otimização do desempenho é um aspecto essencial do gerenciamento de qualquer banco de dados. O MySQL facilita o desenvolvimento de aplicativos de alto desempenho fornecendo muitos recursos e opções de ajuste. Saiba mais sobre esses recursos neste artigo sobre dicas de otimização de desempenho para MySQL. Este outro artigo sobre ajuste de consulta também fornece práticas recomendadas específicas para desempenho.

O MySQL é compatível com propriedades ACID (atomicidade, consistência, isolamento e durabilidade) que garantem a validade dos dados, independentemente de erros, falhas ou outros possíveis contratempos.

Casos de uso

Devido à versatilidade, o MySQL pode ser usado para muitos casos de uso diferentes. Veja abaixo mais detalhes.

Aplicativos da Web

O MySQL é uma parte essencial de vários aplicativos da Web criados, hoje, usando a pilha LAMP de código aberto. LAMP traz o Linux como sistema operacional, Apache como servidor da Web, MySQL como banco de dados e PHP, Python ou Perl como linguagem de programação. LAMP ajuda os desenvolvedores a criar aplicativos da Web dinâmicos que exigem a recuperação de informações atualizadas de um banco de dados como o MySQL. As informações podem incluir contas e detalhes do usuário, nomes de produtos, registros de clientes, vendas e muito mais. Usando SQL, os usuários podem acessar e manipular facilmente as informações armazenadas no banco de dados. Para saber mais, consulte LAMP e como usá-la para criar aplicativos da Web.

Processamento de transações on-line

Atualmente, muitos aplicativos exigem um banco de dados como o MySQL, que pode lidar rapidamente com um grande número de transações de banco de dados com um grande número de pessoas. Bancos de dados OLTP, como o MySQL, são a base para muitas transações cotidianas na Web, incluindo transações financeiras, reservas de viagens, manutenção de registros e muito mais. Para oferecer suporte aos casos de uso de processamento de transações on-line, o MySQL segue os princípios ACID, suporte a XML e JSON, procedimentos armazenados, clustering e particionamento. Ele também oferece a opção de seleção entre vários mecanismos de armazenamento, que dá a flexibilidade de integrar dados de vários tipos de tabelas.

E-commerce

O MySQL é um banco de dados muito usado nos aplicativos de e-commerce que exigem o gerenciamento de usuários, informações de consumidores, dados financeiros e análise de tendências para evitar atividades fraudulentas. Um banco de dados relacional como o MySQL pode ser usado para organizar informações em tabelas (produtos, clientes, pedidos) e adicionar outras tabelas conforme necessário. Algumas das maiores organizações do mundo, como a Airbnb, Uber, Netflix, Booking.com, Spotify e eBay, usam o MySQL para potencializar os aplicativos de e-commerce. O MySQL também pode ser implantado de maneira híbrida para oferecer suporte total aos casos de uso de e-commerce. O MySQL pode ser usado como banco de dados relacional para dados estruturados e não relacionais para dados não estruturados, como detalhes de produtos ou informações de marketing. 

Aplicativos SaaS

Os aplicativos SaaS normalmente são operações 24 horas. Portanto, exigem o mínimo de inatividade, segurança e a capacidade de escalonamento conforme as necessidades. O MySQL tem aparecido como uma opção de banco de dados amplamente utilizada para criar aplicativos SaaS porque é fácil de implantar, gerenciar e escalonar. Por ser de código aberto, os desenvolvedores podem começar rapidamente sem precisar pagar taxas de licenciamento por um software reservado. A comunidade global do MySQL é ativa e contribuiu com plug-ins que fornecem recursos adicionais.

Gerenciamento de conteúdo

O MySQL é uma opção de banco de dados muito usada nos sistemas de gerenciamento de conteúdo (CMS), como o WordPress e Drupal. Os CMSs armazenam postagens, páginas, imagens, comentários, categorias, tags, campos personalizados, usuários e outras configurações no banco de dados MySQL. Como os CMSs muitas vezes têm milhares ou até milhões de contas por dia, o MySQL consegue processar tabelas grandes e várias consultas ao mesmo tempo. À medida que seu público cresce, o MySQL pode ser escalonado vertical ou horizontalmente para atender às necessidades da sua empresa. 

Mídia social

Um aspecto importante dos aplicativos de mídia social é a necessidade de conexões entre vários repositórios de dados, como os de usuários, grupos e comentários. Esse tipo de caso de uso resulta na preferência de bancos de dados relacionais para aplicativos de mídia social, sendo o MySQL uma das principais opções. Alguns exemplos importantes são o Twitter, o Pinterest e o LinkedIn.

Pronto para testar o MySQL?

O Google Cloud oferece uma oferta totalmente gerenciada do MySQL: o Cloud SQL para MySQL
Saiba mais sobre o Cloud SQL

Saiba como o Cloud SQL para MySQL ajuda a inovar. Veja a documentação

O Google Cloud oferece um banco de dados MySQL gerenciado para atender às suas necessidades de negócios, desde a desativação de um data center local até a execução de aplicativos SaaS e a migração dos principais sistemas de negócios.