A sintaxe da consulta é limitada. As consultas são ilimitadas.

Empurramento de predicado, agrupar por pushdown, paginação de deslocamento, paginação do conjunto de teclas, otimização da união, otimização de pesquisaJá discutimos tudo isso. Ainda assim, é importante entender o fluxo de execução padrão e simples - embora lento - da consulta.

Lukas Eder explicou o ordem real de execução do SQL. Como o N1QL é inspirado no SQL e o segue de perto, essa explicação também se aplica aqui. Recomendo muito a leitura.

Com o N1QL, você pode usar a explicação visual para ver a estrutura do plano e o fluxo de dados. Essa é uma maneira fácil de entender a ordem de execução antes de otimizar o desempenho por meio da criação de índices. Usei o exemplo de viagem incorporado e, portanto, forcei a varredura primária com a dica USE INDEX.

Aqui está o plano visual. A execução do plano e o fluxo de dados são de baixo para cima. Começa com uma varredura de índice primário e uma varredura de índice secundário e termina com o operador de paginação LIMIT antes de retornar os resultados para o aplicativo.

A explicação visual é interativa. Você pode clicar em cada operador para ver os parâmetros definidos para esse operador pelo otimizador, conforme mostrado para alguns dos operadores abaixo.

O plano de consulta começa com isso, logicamente. Todas as otimizações que se seguem a isso são pensadas por pessoas/ferramentas e selecionadas pelo otimizador para construir uma máquina de fluxo de dados para cada consulta. O objetivo do otimizador é criar máquinas que façam o mínimo de trabalho possível e ainda forneçam os resultados corretos.

Autor

Postado por Keshav Murthy

Keshav Murthy é vice-presidente de P&D da Couchbase. Anteriormente, ele trabalhou na MapR, IBM, Informix e Sybase, com mais de 20 anos de experiência em design e desenvolvimento de bancos de dados. Ele liderou a equipe de P&D de SQL e NoSQL na IBM Informix. Recebeu dois prêmios President's Club na Couchbase e dois Outstanding Technical Achievement Awards na IBM. Keshav é bacharel em Ciência da Computação e Engenharia pela Universidade de Mysore, Índia, detém dez patentes nos EUA e tem três patentes pendentes nos EUA.

Deixar uma resposta