À medida que a adoção do NoSQL cresce, os desenvolvedores e as empresas precisam de um banco de dados de uso geral para reformular seus aplicativos e serviços de missão crítica. Esses bancos de dados não são mais usados apenas por serviços de back-end que precisam de acesso aos dados em menos de um segundo, mas também por aplicativos corporativos com requisitos de consulta sujeitos a regras comerciais complexas.
O MongoDB™, um dos primeiros a entrar no espaço dos bancos de dados NoSQL, oferece um método processual para consultar dados. Embora sua abordagem seja eficaz para consultas direcionadas (ou seja, para encontrar documentos com condições de filtro específicas), ela pode se tornar complexa para consultas que exigem junções e agregações de documentos. Para possibilitar essas consultas, o MongoDB oferece uma estrutura de agregação elaborada que suporta requisitos mais avançados. O desafio dessa abordagem é que ela exige um conhecimento específico de programação processual que é mais adequado à comunidade de desenvolvedores do que a outras funções de consumidores de dados, como analistas e cientistas de dados.
Aqui estão algumas das características inibidoras da estrutura de consulta do MongoDB:
- Proprietário - o método de consulta e a estrutura de agregação do MongoDB usam uma construção proprietária que exige que os usuários aprendam uma nova linguagem.
- Complexo - Embora o método de consulta do MongoDB seja relativamente simples para uma consulta simples para localizar um documento específico, a estrutura de agregação é bastante complexa.
- Poder expressivo limitado - o MongoDB tem suporte limitado para JOINs e para unir coleções fragmentadas. Veja isso blog comparando o suporte JOIN no Couchbase e no MongoDB.
- Otimização limitada de consultas - Como o pipeline de agregação é processual e carece de poder expressivo, os aplicativos precisam compensar fazendo um processamento de dados complexo no lado do cliente. Isso resulta em complexidade e baixo desempenho.
O Couchbase chegou ao mercado NoSQL alguns anos depois do MongoDB e adotou uma abordagem diferente. O Couchbase adota um padrão mais aberto de SQL e estende a linguagem SQL para dar suporte ao seu banco de dados JSON. A linguagem baseada em SQL do Couchbase para JSON (N1QL) traz o poder expressivo do SQL para a plataforma de dados do Couchbase. Ela oferece suporte a construções de junção ANSI, bem como recursos avançados de otimização de consultas e indexação que são dimensionados para suportar os requisitos de desempenho dos aplicativos comerciais críticos atuais.
Faça o download whitepaper para saber mais sobre o Couchbase N1QL e seu desempenho extremamente rápido.