Bem-vindo de volta ao SQL avançado. Nesta lição, discutiremos os índices. Começaremos examinando o propósito de um índice. A seguir, veremos dois tipos principais de arquiteturas. E, finalmente, veremos como os índices entram em jogo em nossa consulta de pesquisa. Agora vamos pensar sobre nosso exemplo de livro de receitas. Se tivéssemos que pesquisar página por página nós chamaríamos isso de busca sequencial. Você pode ver como isso seria ineficiente. É aqui que entram os índices, mas os índices são mais do que apenas os automatizados aplicados à sua chave primária. Existem vários índices usado com diferentes tipos de arquitetura e métodos de indexação. Existem dois tipos principais de arquitetura que você deve conhecer. Agrupado e não agrupado. Considere o índice no final do seu livro de receitas, são ingredientes agrupados em ordem alfabética. O livro de receitas em si provavelmente está agrupado em torno dos tipos de refeição como saladas, prato principal, sobremesas. No caso de um banco de dados, um índice clusterizado é um índice que ordena fisicamente os dados no disco de uma certa maneira. Cada vez que novos dados são adicionados, eles são salvos na mesma ordem. É algo a lembrar com o índice clusterizado é que apenas um pode ser aplicado a uma tabela de banco de dados. Veja, eles impõem uma ordem de dados. Com isso significa que o tempo certo é aumentado porque cada vez que novos dados são adicionados tudo tem que ser reorganizado. O índice clusterizado, no entanto, aumenta muito a velocidade de leitura da tabela. Se disséssemos que existem dois tipos e um é agrupado, então o outro deve ser não agrupado. Esses tipos de índices são os que mais comumente usamos mas nem todo mundo sabe como eles são implementados. Os índices não agrupados mantêm uma lista de pedidos separada que tem ponteiros para as linhas físicas. É basicamente como o índice de um livro. Ele sabe em que página um determinado capítulo começa e termina. Uma tabela pode ter muitos índices não agrupados mas cada um adiciona tempo a quanto tempo leva para escrever os dados. Agora que entendemos a estrutura do índice vamos ver como funciona no PostgreSQL. Podemos manipular índices no PostgreSQL por meio de um conjunto de comandos. PostgreSQL cria um plano de consulta para cada consulta que recebe. Você deve sempre selecionar o plano que melhor atende à estrutura da consulta e às propriedades dos dados. Podemos produzir um plano de consulta usando um comando simples, explain. Isso nos mostrará todas as informações relevantes. Vamos dar uma olhada no plano de consulta que retorna todos os títulos de nossa coleção. Nos parênteses, notamos alguns valores. O custo de uma consulta é um intervalo de unidades arbitrárias. Começando do esperado antes que a fase de saída possa começar ao custo total estimado desta consulta.