Com os bancos de dados NoSQL provando seu valor em relação à abordagem SQL legada, a próxima pergunta é inevitavelmente "como podemos otimizar nossos processos o máximo possível?" Muitos bancos de dados têm usado a otimização estática baseada em regras (RBO) para otimizar as cargas de trabalho, mas isso tem seus limites. A otimização baseada em custo (CBO) permite uma otimização muito mais ágil e automatizada, usando o mínimo possível de recursos. Nesse sentido, a Couchbase apresentou seu otimizador baseado em custo para JSON como uma prévia no Couchbase Server 6.5, e temos o prazer de anunciar que nossa tecnologia de otimização baseada em custo tem patente pendente.
Então, por que escolher a CBO em vez da RBO? Imagine a cena: você está atrasado para uma reunião no outro lado da cidade. Você consulta o Google Maps e encontra o que parece, a olho nu, ser a rota mais rápida possível até lá. Mas, quando você começa a andar, logo descobre que a rota o está levando diretamente para o tráfego intenso, fechamentos de estradas e, em certos pontos, até mesmo para o lado errado de uma rua de mão única.
Naturalmente, você esperaria que um aplicativo como o Google Maps levasse em consideração os fatores que afetam sua viagem, em vez de escolher automaticamente a rota que cobre a menor distância possível. Você esperaria que ele o orientasse para evitar o tráfego intenso e exibisse uma sugestão de rota dinâmica com base em todos os fatores que poderiam afetar sua viagem. Você não esperaria nada menos do que a viagem mais eficiente possível, seja pelo menor tempo de viagem, pelo menor consumo de combustível ou pelo menor custo de tarifas ou pedágios.
O CBO desempenha a mesma função para cargas de trabalho de banco de dados. O RBO deve sempre seguir as mesmas regras rígidas - por exemplo, "me dê a viagem mais curta possível" produziria o primeiro cenário acima. Em comparação, o CBO usa metadados e estatísticas para selecionar qual plano de execução de consulta usará o mínimo possível de recursos, como memória, CPU ou E/S - ou, no exemplo acima, tempo. Em última análise, um CBO inteligente sempre lhe dará a opção mais econômica, evitando possíveis obstáculos.
O Cost-Based Optimizer for JSON do Couchbase oferece latência de consulta reduzida, facilitando o trabalho do desenvolvedor. O CBO está disponível como um recurso complementar à otimização baseada em regras existente, melhorando a eficiência da consulta para um grande número de casos. Ele consegue isso por meio de uma melhor seleção de índices do que sua contraparte RBO, juntamente com uma melhor seleção do tipo JOIN e uma melhor ordenação do próprio processamento - tudo isso afeta a latência da consulta. Em essência, os desenvolvedores simplesmente escreverão a consulta e deixarão que o CBO determine o melhor caminho a seguir.
Para saber mais sobre nosso CBO para JSON, dê uma olhada em alguns de nossos outros blogs:
Menos é mais: Por que um otimizador baseado em custos?
Otimizador baseado em custo para Couchbase N1QL (SQL para JSON)
Outros materiais de referência:
Seleção do caminho de acesso em um sistema de gerenciamento de banco de dados relacional