O MySQL é um sistema open-source de gerenciamento de base de dados relacional SQL, desenvolvido e suportado pela Oracle.

Essa é a resposta curta para a questão “o que é MySQL”, mas vamos colocar isso de uma forma mais entendível.

Uma base de dados é somente um conjunto estruturado de dados para utilização e recuperação simples. Para um site WordPress, esses “dados” são coisas como o texto das publicações do seu blog, informações para todos os usuários registrados em seu site, dados carregados automaticamente, configurações importantes, etc.

O MySQL é simplesmente um sistema popular que pode armazenar e gerenciar esses dados para você e é uma solução de base de dados especialmente popular para sites do WordPress.

Leitura sugerida: Como corrigir o erro “MySQL Server Has Gone Away” no WordPress e Como corrigir o erro MySQL 1064.

Vejamos agora essa questão em maior detalhe.

O que é MySQL? Em mais detalhes

O MySQL foi originalmente lançado em 1995. Desde então, já sofreu algumas mudanças em relação à propriedade/administração, pertencendo desde 2010 à Oracle Corporation. Agora que a Oracle está no comando, o MySQL continua sendo um software open-source, o que significa que você pode usá-lo e modificá-lo livremente.

logo MySQL (Fonte da imagem: MySQL/Oracle)
Logo MySQL (Fonte da imagem: MySQL/Oracle)

O nome é a combinação de “My” – nome da filha do cofundador – com SQL – a abreviação de Structured Query Language, uma linguagem de programação que ajuda você a aceder e gerenciar dados em uma base de dados relacional.

Para entender como o MySQL funciona, é necessário conhecer dois conceitos conectados:

Bases de Dados Relacionais

Quando é necessário armazenar dados em uma base de dados, existem diferentes abordagens.

O MySQL escolhe uma abordagem chamada base de dados relacional.

Com uma base de dados relacional, seus dados são divididos em várias áreas de armazenamento – conhecidas como tabelas – sem agrupar tudo em uma grande unidade de armazenamento.

Vamos partir do princípio que você quer armazenar dois tipos de informação:

  • Clientes – seu nome, endereço, detalhes, etc.
  • Pedidos – por exemplo, que produtos foram comprados, preço, quem fez o pedido, etc.

Se tentasse agrupar todos esses dados apenas em um local, você encontraria alguns problemas como:

  • Dados diferentes – os dados que você precisa coletar para um pedido são diferentes dos dados de um cliente.
  • Dados duplicados – cada cliente tem um nome e cada pedido tem também o nome de um cliente. Dados duplicados são, por isso, confusos.
  • Falta de organização – como você pode conectar de forma fiável as informações do pedido às informações do cliente?

Para solucionar esses problemas, uma base de dados relacional usaria uma tabela separada para clientes e outra tabela separada para pedidos.

Todavia, você provavelmente também gostaria de poder dizer “quero ver todos os pedidos para Fulano”. É aí que entra a parte relacional.

Recorrendo a algo designado por “chave”, poderá vincular os dados dessas duas tabelas para que possa manipular e combinar os dados em diferentes tabelas, conforme necessário. É importante sublinhar que uma chave não é o nome do cliente. Em vez disso, você usaria algo 100% único, como um número de identificação.

Se já olhou para a base de dados do seu site WordPress, verá que ela usa esse modelo relacional, com todos os seus dados divididos em tabelas separadas.

Por definição, o WordPress usa 12 tabelas separadas, mas muitos plugins WordPress adicionam também suas próprias tabelas. Por exemplo, a base de dados para o site WordPress abaixo tem 44 tabelas separadas!

Um exemplo das tabelas diferentes MySQL
Um exemplo das tabelas diferentes MySQL

Para concluir esse conceito relacional, vamos olhar especificamente para o WordPress…

O WordPress armazena publicações de blog na tabela wp_posts e usuários na tabela wp_users. Contudo, como essas duas tabelas estão conectadas por uma chave, poderá vincular cada conta de usuário a todas as publicações de blog que cada usuário escreveu.

Eis como isso fica na base de dados.

Cada publicação é atribuída a um post_author, que é um número de identificação único (essa é a chave):

A tabela wp_posts
A tabela wp_posts

Por isso, se você quiser ver qual conta de usuário corresponde a esse número, pode ver o ID na tabela wp_users:

A tabela wp_users
A tabela wp_users

A chave – o número de ID – é o elemento de conexão. E é dessa forma que eles ficam “relacionados” entre si, apesar de os dados serem armazenados em tabelas separadas.

Modelo Cliente-Servidor

Além de ser um sistema de base de dados relacional, o MySQL também utiliza algo designado por modelo cliente-servidor.

A parte do servidor é onde ficam seus dados. Para aceder a esses dados, necessita de fazer uma solicitação. É aí que surge o cliente.

Com SQL – a linguagem de programação que falámos anteriormente – o cliente envia uma solicitação ao servidor da base de dados para consultar os dados que o cliente precisa.

Por exemplo, se alguém visitar uma publicação do blog no seu site, seu site WordPress enviará várias solicitações SQL ao servidor da base de dados para obter todas as informações necessárias para apresentar a publicação do blog no navegador desse visitante. Isso faria:

  • Uma consulta à tabela wp_posts para obter o conteúdo da publicação do blog
  • Uma consulta à tabela wp_users para obter informações para a caixa do autor (usando a tecla que mostrámos acima)
  • Etc.

Se quiser ver exatamente os tipos de solicitações de base de dados feita no seu site WordPress, pode usar um fantástico plugin gratuito chamado Query Monitor para ver a interação exata entre seu site WordPress (o cliente) e o servidor de base de dados:

O plugin Query Monitor mostra as consultas SQL individuais enviadas para o servidor MySQL
O plugin Query Monitor mostra as consultas SQL individuais enviadas para o servidor MySQL

Outra solução premium que você pode utilizar é o New Relic (licença necessária). Se o seu site WordPress não consegue acessar o servidor de banco de dados, ele aciona o erro comum ao estabelecer uma mensagem de conexão com o banco de dados. Na Kinsta, usamos a ferramenta incorporada Kinsta APM para monitorar seus sites.

Kinsta usa MariaDB e não o MySQL: Qual é a diferença entre eles?

Na Kinsta, utilizamos um sistema de base de dados chamado MariaDB, não o MySQL. Contudo, eles partilham as mesmas caraterísticas.

Aliás, o MariaDB é um fork do MySQL, e o principal desenvolvedor do MariaDB é um dos fundadores do MySQL. Um “fork” significa que os desenvolvedores do MariaDB usaram o código original open-source do MySQL, e depois criaram o MariaDB.

Por isso, apesar de ter um nome diferente, o MariaDB está fortemente associado ao MySQL e oferece uma capacidade de substituição “drop-in” completa (ou seja, pode alternar facilmente entre o MySQL e o MariaDB sem precisar de precauções especiais).

Ainda que o MariaDB seja capaz de garantir interoperabilidade com o MySQL, ele também oferece um melhor desempenho em algumas áreas, o que encaixa na nossa filosofia de usar a arquitetura com melhor desempenho para alimentar seu site WordPress.

Revendo: O que é MySQL?

MySQL é um sistema open-source de gerenciamento de base de dados relacional. Para sites WordPress, isso quer dizer que ele ajuda a armazenar todas suas publicações, usuários, informações de plugins, etc.

Ele armazena essas informações em “tabelas” separadas e as conecta com “chaves”, daí o seu nome relacional.

Quando seu site WordPress necessita de consultar essas informações, ele envia uma solicitação ao servidor de base de dados MySQL usando o SQL (esse é o modelo cliente-servidor).

Kinsta utiliza MariaDB e não MySQL. Contudo, o MariaDB é um fork do MySQL, criado por um dos cofundadores do MySQL e garante a interoperabilidade, assim como melhorias de desempenho. Por isso, todos os conceitos básicos nesse artigo também se aplicam ao MariaDB.

Se utiliza Kinsta como seu host, oferecemos acesso direto à base de dados, assim como a capacidade de usar ferramentas de gerenciamento de base de dados, como o phpMyAdmin.