MySQL: Utilização avançada

Como configurar, otimizar, exportar ou importar dados MySQL

👋 Bem-vindo à documentação da Stackhero!

A Stackhero oferece uma solução MySQL cloud pronta a usar que proporciona uma série de benefícios, incluindo:

  • Conexões e transferências ilimitadas.
  • Interface web phpMyAdmin incluída.
  • Atualizações fáceis com apenas um clique.
  • Desempenho ótimo e segurança robusta alimentados por uma VM privada e dedicada.

Poupe tempo e simplifique a sua vida: leva apenas 5 minutos para experimentar a solução de MySQL cloud hosting da Stackhero!

Na Stackhero, não existe um limite pré-definido para o número de ligações simultâneas que o seu servidor MySQL pode aceitar. Tem a flexibilidade de ajustar este parâmetro diretamente no seu dashboard Stackhero, de acordo com as necessidades da sua aplicação.

Embora possa ser tentador definir este valor o mais alto possível, é aconselhável escolher um limite prático. Cada ligação aberta consome memória (RAM) do servidor, por isso, definir um valor demasiado elevado pode colocar pressão desnecessária sobre a sua instância e até tornar a sua base de dados instável.

Se a sua base de dados utiliza o motor de armazenamento InnoDB, pode ativar a opção "InnoDB Optimizations" no dashboard Stackhero para melhorar o desempenho.

Da mesma forma, se a sua base de dados utiliza o motor MyISAM, ativar a opção "MyISAM Optimizations" pode trazer ganhos de performance.

Se não souber qual o motor de armazenamento utilizado pela sua base de dados ou qual a opção de otimização a selecionar, é geralmente seguro ativar estas opções por defeito. Pode sempre ajustá-las posteriormente, consoante a carga de trabalho ou a utilização de recursos.

As ferramentas de linha de comandos MySQL, como mysql e mysqldump, são bastante úteis para tarefas como importação e exportação de dados.

Uma forma simples de aceder a estas ferramentas é executá-las dentro de um contentor Docker. Esta abordagem mantém o seu ambiente local limpo e evita instalações manuais.

Se o Docker não faz parte do seu workflow, não há qualquer problema. Pode experimentar o Code-Hero na Stackhero. Esta plataforma de desenvolvimento baseada no browser permite-lhe trabalhar diretamente no navegador, sem necessidade de instalar nada localmente. Pode saber mais e experimentar em apenas alguns minutos, visitando Code-Hero na Stackhero.

Para começar com o Docker, pode lançar um contentor MySQL executando:

docker run -it -v $(pwd):/mnt mysql:<MYSQL_VERSION> /bin/bash

Substitua <MYSQL_VERSION> pela versão que necessita. Por exemplo, se estiver a utilizar MySQL 8.0.36-0 na Stackhero, utilize 8.0.36 (sem o -0 no final).

Assim que o contentor estiver em execução, pode testar a ligação com o seguinte comando:

mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT>

Aqui, o seu diretório atual é montado em /mnt dentro do contentor (graças ao argumento $(pwd):/mnt). Esta configuração facilita a transferência de ficheiros entre o seu computador e o contentor. Por exemplo, se quiser fazer uma cópia de segurança de uma base de dados para a sua máquina, pode usar:

mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > /mnt/<DATABASE>.sql

Para criar uma cópia de segurança (ou "dump") da sua base de dados, pode utilizar a ferramenta mysqldump diretamente no seu computador. (Consulte a secção anterior para saber como executar dentro de Docker, se preferir.)

Para exportar uma base de dados da sua instância Stackhero para o seu computador, execute:

mysqldump -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> > <DATABASE>.sql

Certifique-se de substituir <XXXXXX>.stackhero-network.com, <PORT> e <DATABASE> pelos dados reais da sua instância. Após executar o comando, ser-lhe-á pedida a password do utilizador root. A ferramenta mysqldump irá então guardar as tabelas da sua base de dados num ficheiro chamado <DATABASE>.sql.

Para importar uma base de dados do seu computador para a sua instância Stackhero, utilize este comando:

mysql -u root -p -h <XXXXXX>.stackhero-network.com -P <PORT> <DATABASE> < yourDump.sql

Não se esqueça de substituir yourDump.sql pelo nome real do ficheiro SQL que pretende importar.