Displaying posts with tag: MySQL (reset)
Uso eficiente do mysqli_result::$num_rows

Eu frequentemente vejo esse padrão em aplicativos herdados usando mysqli:

$result = $mysqli->query("
    SELECT *
    FROM table_name
    WHERE conditions = 'whatever'
");
if ($result && $result->num_rows > 0) {
    return;
}

A intenção do desenvolvedor aqui é ver se existem quaisquer linhas no banco de dados que correspondam a uma determinada condição. Ele faz isso emitindo uma consulta. Em seguida, perguntando ao objeto do resultado quantas linhas ele tem. O desenvolvedor não quer realmente nenhum dado do resultado e não se preocupa com a contagem de linha em si; esta é apenas uma verificação para ver se ao menos uma linha existe no banco de dados.

Esta é uma má conservação de recursos. O banco de dados faz o trabalho necessário para selecionar todas as colunas para todas as linhas que correspondem às condições, aloca memória para elas e as retorna. Mas o desenvolvedor descarta tudo isso …

[Leia mais]
Monitoração daqueles locais difíceis de alcançar: Linux, Java, Oracle e MySQL

Os ambientes de TI de hoje são cada vez mais heterogêneos, com Linux, Java, Oracle e MySQL considerados quase tão comuns quanto os ambientes tradicionais do Windows. Em muitos casos, essas plataformas foram integradas ao departamento de TI baseado em Windows de uma organização por meio de uma aquisição de uma empresa que se utiliza de uma dessas plataformas. Em outros casos, os aplicativos podem ter feito parte do departamento de TI por anos, mas eram gerenciados por um departamento separado ou um único administrador.

Mesmo assim, seja uma percepção da especialização necessária, frustração com as muitas combinações de versão dessas plataformas ou apenas incertezas e dúvidas gerais, Linux, Java, Oracle e MySQL criam confusão em massa no monitoramento e são considerados rotineiramente “difíceis de acessar” mesmo para um profissional de TI experiente. Esse problema ocorre nas duas vias (quando monitorar o Windows …

[Leia mais]
Atualização no Amazon Aurora: chame funções Lambda a partir de procedimentos armazenados; carregue dados do S3

Muitos serviços da AWS funcionam muito bem por si só, mas são ainda melhores juntos! Este aspecto importante do nosso modelo permite que você selecione um único serviço, aprender sobre ele, obter alguma experiência com ele, e, em seguida, estender o seu espaço para outros serviços relacionados com o tempo. Por outro lado, as oportunidades para fazer com que os serviços trabalhem em conjunto estão sempre presentes e nós temos algumas delas no nosso roteiro orientado para o cliente.

Hoje eu gostaria de falar sobre dois novos recursos para o Amazon Aurora, o nosso banco de dados relacional compatível com MySQL:

Invocação de Funções Lambda – Os procedimentos armazenados que você cria dentro dos seus bancos de dados Amazon Aurora pode agora podem invocar funções …

[Leia mais]
Como desenvolver uma solução de member get member em 24 horas

Desenvolver uma solução de member get member em 24 horas é, sem sombra de dúvida, um desafio. Com base nisso, o MercadoPago, empresa de solução de pagamentos online do Mercado Livre, chamou de Challenge Weekend o evento interno que realizou, reunindo desenvolvedores da empresa focados nessa missão: desenvolver uma solução de back-end que se encaixasse perfeitamente no aplicativo de ofertas para a Black Friday (Mercado Pago Ofertas). Esse aplicativo estava em processo de desenvolvimento e, por isso, mais do que nunca a comunicação entre as equipes envolvidas foi fundamental para o funcionamento e sucesso do projeto member get member.

A solução

Para atender à proposta nós, os integrantes da equipe vencedora do desafio, pensamos em um sistema separado em duas partes: uma API que provesse os serviços de geração de código de usuário e monitoramento de uma campanha de marketing (member get member) e um sistema de …

[Leia mais]
Dockerizando MySQL na Uber Engineering

O sistema de armazenamento Schemaless da Uber Engineering alimenta alguns dos maiores serviços da Uber, como o Mezzanine. Schemaless é um datastore escalável e altamente disponível no topo do grupo de clusters do MySQL[1]. Gerenciar esses clusters foi bastante fácil quando tínhamos 16 deles. Atualmente, temos mais de 1.000 clusters contendo mais de 4.000 servidores de banco de dados e isso requer uma classe diferente de ferramentas.

Inicialmente, todos os nossos clusters eram gerenciados pelo Puppet, um monte de scripts ad hoc e operações manuais que não podiam escalar no ritmo da Uber. Quando começamos a procurar por uma melhor maneira de gerenciar o crescente número de clusters do MySQL, tivemos alguns requisitos básicos:

[Leia mais]
Chame funções Lambda a partir de procedimentos armazenados

Muitos serviços da AWS funcionam muito bem por si só, mas são ainda melhores juntos! Este aspecto importante do nosso modelo permite-lhe selecionar um único serviço, aprender sobre ele, obter alguma experiência com ele, e, em seguida, estender o seu espaço para outros serviços relacionados com o tempo. Por outro lado, as oportunidades para fazer com que os serviços trabalhem em conjunto estão sempre presentes e nós temos algumas delas no nosso roteiro orientado para o cliente.

Hoje, eu gostaria de falar sobre dois novos recursos para o Amazon Aurora, o nosso banco de dados relacional compatível com MySQL:

  • Invocação de Funções Lambda – Os procedimentos armazenados que você cria dentro dos seus bancos de dados Amazon Aurora pode agora podem invocar …
[Leia mais]
Validação contínua do backup do MySQL: restaurando backups

Os bancos de dados MySQL do Facebook estão espalhados pelos nossos data centers globais e precisamos ser capazes de nos recuperar de uma interrupção em qualquer um desses locais, em qualquer momento. Em tal evento de desastre, não só temos que recuperar o serviço o mais rápido e confiável possível, mas também precisamos garantir que não percamos dados no processo. Para esse efeito, criamos um sistema que verifica continuamente a capacidade de restaurar os nossos bancos de dados a partir de backups.

Nosso sistema de restauração consiste em dois componentes principais:

  • Continuous Restore Tier (CRT) – Responsável por todo agendamento e monitoramento em torno de restaurações. Ele procura bancos de dados com novos backups e cria tarefas de restauração para eles, monitora o progresso da restauração e garante que cada backup seja restaurado com êxito.
  • ORC …
[Leia mais]
Guia da Certificação MySQL

Tudo sobre as certificações do SGBD open source mais popular do mundo!

Provas necessárias para cada certificação, conteúdo de cada prova, valores, número de questões, tempo disponível de realização da prova, e muitas outras informações.

Amazon RDS para SQL Server – Suporte para Backup/Restauração Nativos para Amazon S3

Os leitores regulares dos meus artigos sabem que eu sou um grande fã do Amazon Relational Database Service (RDS). Como um serviço de banco de dados gerenciado, ele cuida dos aspectos mais rotineiros de configuração, operação e a escalabilidade de um banco de dados relacional.

Nós lançamos suporte para SQL Server em 2012. Continuando o nosso esforço para adicionar recursos que incluíram o suporte para SSL, as principais atualizações de versão, …

[Leia mais]
Novo MySQL 8.0 lançado!

Todos os anos novos produtos são lançados. Na área de TI não é diferente. Já vi muita coisa boa ser lançada, reeditada, copiada… Mas, também já vi muito lixo tecnológico e “emblomation” de marketing. Nestes 34 anos de TI, já […] ↓ Leia o restante deste post...