Recursos especiais neste artigo:
Contém nota Quickupdate.
A utilização de tecnologias NoSQL como banco de dados ainda é vista com cautela por muitos profissionais. Para diminuir esse receio e auxiliar no processo de tomada de decisão que envolve o uso de tais tecnologias, recomenda-se a realização de um estudo que traça comparações entre o desempenho de bancos de dados SQL e NoSQL, onde diversos testes de inclusão, alteração, exclusão e consulta de dados são realizados em bancos de dados. Deste modo, este artigo apresenta a comparação, o ambiente, os dados, os testes e a análise dos resultados são detalhados visando auxiliar o leitor a identificar qual banco de dados possui melhor desempenho no tempo de execução de operações que manipulam dados e mostra como resultado que, pelo menos no cenário e contexto apresentado, as tecnologias SQL ainda são mais atrativas para inserir, excluir, alterar e consultar grandes quantidades de dados. A comparação também provê indícios de que a plataforma Linux apresenta um desempenho superior à plataforma Windows, de acordo com as operações, dados, e demais detalhes técnicos discutidos na comparação das tecnologias SQL e NoSQL.
Em
que situação o tema é útil
A comparação apresentada neste artigo é útil quando
é necessário avaliar a utilização de um banco de dados SQL ou NoSQL para a
realização de tarefas de inclusão, alteração, exclusão e consulta. Os
resultados apresentados neste artigo avaliam apenas o tempo de execução das
instruções SQL e comandos NoSQL em um contexto específico.
Recentemente os profissionais que trabalham com bancos de dados foram apresentados a ideias e abordagens diferentes para o armazenamento e a manipulação de dados identificadas apenas pela sigla NoSQL. O emprego de tecnologias associadas a bancos de dados NoSQL ainda é encarado com certa cautela e estranheza por diversos profissionais, especialmente aqueles que já trabalham com bancos de dados SQL há um bom tempo. De fato, a área de banco de dados é uma das mais tradicionais da computação e qualquer sugestão de adoção de alguma nova ideia é, pelo menos a princípio, encarada com ceticismo e resistência.
Uma das maneiras práticas de argumentar a avaliação ou mesmo o emprego da tecnologia NoSQL em sistemas importantes de bancos de dados é a comparação com os bancos SQL, que atualmente representam a tecnologia padrão para a manipulação de dados estruturados nas empresas. Esta comparação deve ser realizada com critérios científicos, valores comparativos, confiança estatística e rigor para que ela possa ser utilizada como base para a tomada de decisão que pode influenciar a adoção ou não de alguma tecnologia que vai manipular um dos bens mais importantes das empresas: os dados.
Apesar de existirem diversos fatores, facetas, detalhes técnicos e critérios de comparação entre bancos de dados, geralmente o primeiro elemento que vem à cabeça é o desempenho e, em particular, o desempenho relacionado ao tempo de execução de operações nos dados. Ou seja, muitas dúvidas surgem em relação ao quão rápido os bancos de dados NoSQL são em relação aos bancos SQL, pois esta velocidade é considerada muitas vezes o fator mais importante a ser avaliado quando o tópico da conversa é tecnologia de bancos de dados.
Com base neste cenário, este artigo apresenta uma comparação de desempenho que mede empiricamente e analisa quantitativamente o tempo de execução de instruções necessárias para inserir, atualizar, modificar, remover e consultar dados armazenados em bancos de dados SQL e NoSQL. Os Sistemas Gerenciados de Bancos de Dados comparados são o PostgreSQL 9.1.5, o MySQL 5.5.25 (ambos SQL) e o MongoDB 2.0.6, um banco NoSQL que trabalha com documentos. Os testes foram realizados em máquinas virtuais simulando ambientes Windows Server 2008 e Red Hat Linux 6 em versões de 64 bits hospedadas no VMware Workstation 8 instalados em um mesmo servidor físico. Apesar da quantidade limitada de dados e de apenas alguns produtos serem considerados nos testes deste artigo, o leitor pode assumir a comparação como um ponto de partida para procurar mais informações enquanto formula sua opinião a respeito de quão eficiente tais bancos de dados SQL e NoSQL são para a realização de tarefas do dia a dia de qualquer DBA.
Abordagem SQL
A tecnologia tradicional e consolidada para a manipulação de dados empregada nos sistemas atende pela sigla SQL, que é uma linguagem padronizada para que o usuário possa rapidamente realizar operações de leitura e gravação nos dados. O mercado atualmente conta com diversos produtos que permitem trabalhar com esta linguagem como, por exemplo, o SQL Server, o Oracle, o MySQL e o PostgreSQL.
Além de estes produtos suportarem a linguagem SQL, eles também possuem características na forma como os dados são organizados. Os bancos de dados relacionais baseiam-se na formatação dos dados em linhas e colunas modeladas na forma de tabelas que geralmente relacionam-se umas com as outras. Internamente existem diversas estruturas de dados que são alocadas na memória para que a instrução SQL possa realizar a manipulação dos dados das tabelas da forma mais rápida possível. Apesar de existirem diferenças mesmo entre os bancos de dados classificados como bancos SQL, todos eles trabalham com o conceito de tabelas, linhas, colunas e objetos adicionais como índices, transações, arquivos para o armazenamento de dados e de log de transações, stored procedures, etc.
Do ponto de vista da execução de instruções, uma vez que a instrução SQL é recebida, seja ela qual for, o banco de dados realiza várias etapas que incluem a verificação por erros na sintaxe da instrução, análise de qual é a melhor maneira de acessar os dados (pelo índice, estrutura da tabela, usando estatísticas) e outros detalhes. Deste modo, o tempo de execução de uma instrução SQL envolve vários fatores que incluem diversos aspectos internos do funcionamento de cada banco de dados.
Na comparação apresentada neste artigo optou-se por utilizar dois bancos de dados amplamente utilizados no mercado e que seguem a filosofia de software livre: o MySQL e o PostgreSQL. Estes produtos contêm diversos recursos, possuem versões pelas principais plataformas de servidor (Windows e Linux) e são capazes de lidar com grandes quantidades de dados mantendo um excelente desempenho. Os bancos de dados comerciais, tais como o Oracle, o SQL Server e o DB2, não foram utilizados na comparação apesar de serem líderes de mercado em diversos segmentos de aplicações. O motivo é simples: estes produtos possuem em seu contrato de uso, o EULA (End-User License Agreement), cláusulas que impedem a sua comparação por terceiros, ou seja, tais comparações só podem ser realizadas com a autorização prévia dos fabricantes e em condições aprovadas pelos mesmos. Esta política é, em minha opinião, prejudicial para o mercado, pois inibe comparações técnicas relevantes para quem está considerando a utilização de um destes produtos.
...Confira outros conteúdos:
SQL SUM: somando os valores de uma...
SQL: INNER JOIN
SQL: Introdução ao Where
Promoção de Natal
Oferta exclusiva de Natal!
Pagamento anual
12x no cartão
De: R$ 69,00
Por: R$ 59,90
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- 12 meses de acesso
Pagamento recorrente
Cobrado mensalmente no cartão
De: R$ 79,00
Por: R$ 59,90 /mês
Total: R$ 718,80
Garanta o desconto
- Formação FullStack Completa
- Carreira Front-end I e II, Algoritmo e Javascript, Back-end e Mobile
- +10.000 exercícios gamificados
- +50 projetos reais
- Comunidade com + 200 mil alunos
- Estude pelo Aplicativo (Android e iOS)
- Suporte online
- Fidelidade de 12 meses
- Não compromete o limite do seu cartão
<Perguntas frequentes>
Nossos casos de sucesso
Eu sabia pouquíssimas coisas de programação antes de começar a estudar com vocês, fui me especializando em várias áreas e ferramentas que tinham na plataforma, e com essa bagagem consegui um estágio logo no início do meu primeiro período na faculdade.
Estudo aqui na Dev desde o meio do ano passado!
Nesse período a Dev me ajudou a crescer muito aqui no trampo.
Fui o primeiro desenvolvedor contratado pela minha
empresa. Hoje eu lidero um time de desenvolvimento!
Minha meta é continuar estudando e praticando para ser um
Full-Stack Dev!
Economizei 3 meses para assinar a plataforma e sendo sincero valeu muito a pena, pois a plataforma é bem intuitiva e muuuuito didática a metodologia de ensino. Sinto que estou EVOLUINDO a cada dia. Muito obrigado!
Nossa! Plataforma maravilhosa. To amando o curso de desenvolvimento front-end, tinha coisas que eu ainda não tinha visto. A didática é do jeito que qualquer pessoa consegue aprender. Sério, to apaixonado, adorando demais.
Adquiri o curso de vocês e logo percebi que são os melhores do Brasil. É um passo a passo incrível. Só não aprende quem não quer. Foi o melhor investimento da minha vida!
Foi um dos melhores investimentos que já fiz na vida e tenho aprendido bastante com a plataforma. Vocês estão fazendo parte da minha jornada nesse mundo da programação, irei assinar meu contrato como programador graças a plataforma.
Wanderson Oliveira
Comprei a assinatura tem uma semana, aprendi mais do que 4 meses estudando outros cursos. Exercícios práticos que não tem como não aprender, estão de parabéns!
Obrigado DevMedia, nunca presenciei uma plataforma de ensino tão presente na vida acadêmica de seus alunos, parabéns!
Eduardo Dorneles
Aprendi React na plataforma da DevMedia há cerca de 1 ano e meio... Hoje estou há 1 ano empregado trabalhando 100% com React!
Adauto Junior
Já fiz alguns cursos na área e nenhum é tão bom quanto o de vocês. Estou aprendendo muito, muito obrigado por existirem. Estão de parabéns... Espero um dia conseguir um emprego na área.
Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.