0% acharam este documento útil (0 voto)
25 visualizações

Backend Python - Modulo 03 - Indices

Enviado por

pedro.cobos147
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
25 visualizações

Backend Python - Modulo 03 - Indices

Enviado por

pedro.cobos147
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 27

Backend Python

Daniel Santos
Agenda

● Introdução a Indices
● Exercício
Opcional

O aluno conseguirá ver índices normalmente, mas terá uma vantagem tanto
no curso quanto no mercado se souber o conteúdo extra de SQL.
Introdução a indices

Como procurar por algum assunto


em um livro grande?
Introdução a indices

Ou para os mais velhos como


procurar um telefone na lista
telefônica
Introdução a indices

Índices nos bancos de dados são utilizados para facilitar a busca de


informações em uma tabela com o menor número possível de operações de
leituras, tornado assim a busca mais rápida e eficiente.
Otimizando a performance de um banco de dados

Arquitetura Banco de Dados

Read Replica (AWS) Indexes

Multi-AZ (Amazon RDS) - Failover Support

Master Slave Replication


Como o SQL armazena os dados

Os registros são armazenados em páginas de dados, páginas estas que


compõem o que chamamos de pilha, que por sua vez é uma coleção de páginas
de dados que contém os registros de uma tabela.
Como o SQL armazena os dados

Os registros de dados não são armazenados em uma ordem específica.

As páginas de dados não estão vinculadas a uma lista, pois implementam


diretamente o conceito de pilhas.

Quando são inseridos registros em uma página de dados e ela se encontra


quase cheia, as páginas de dados são divididas em um link é estabelecido para
marcações e ligações entre elas.
Utilizando o comando Explain

O Postgres possui uma funcionalidade bem útil quando precisamos verificar o


tempo e o custo de um determinado SELECT, esse comando se chama EXPLAIN
ANALYZE

Com o EXPLAIN ANALYZE teremos o retorno detalhado da execução de um


SELECT
Utilizando o comando Explain
Indices no SQL

Índices são sempre bem vindos em colunas de grande


seletividade
Indices no NOSQL (Mongo, MariaDB…)
Indice Clusterizado
Indice Clusterizado

Um índice clusterizado determina a ordem em que as linhas de uma tabela


são armazenadas no disco

Suponha que temos uma tabela chamada “Livro” que tem uma coluna de
chave primária “livroID” e que criamos um índice clusterizado para essa
mesma coluna. Ao fazer isso, todas as linhas dentro da tabela Livro serão
fisicamente ordenadas (Através de um Grupo)
Indice Clusterizado

Numa tabela, quando é definida uma chave primária (PK), um índice


clusterizado é criado automaticamente pelo banco para a mesma. E o que
ele faz basicamente é ordenar as informações pela coluna de chave daquele
índice em disco.
Indice Clusterizado

Postgres não possuí suporte para índices clusterizados


Indice Não Clusterizado
Indice Não Clusterizado

O índice não clusterizado é semelhante ao índice de um livro. O índice de um


livro consiste em um nome de capítulo e número de página, se você quiser
ler qualquer tópico ou capítulo, você pode ir diretamente para essa página
usando o índice desse livro. Não há necessidade de passar por cada página
de um livro.
Indice Não Clusterizado

CLUSTER employees USING employees_ind;


B-tree e Sorting

As entradas do índice B-Tree são classificadas em ordem ascendente por


padrão. Em alguns casos, faz sentido fornecer uma ordem de tipo diferente
para um índice.
Para Criar um Índice B-Tree em uma Coluna Única

CREATE INDEX customer_name_index ON customer(name DESC NULLS


LAST);
Para Criar um Índice B-Tree em diversas colunas

CREATE INDEX customer_name_email_index ON customer(name, email);


Vantagens e Desvantagens de Indices

Vantagens Desvantagens

Melhoria de Performance Piora a Performance de Escritas em BD

Pode Trazer dados especificos mais Aumenta o Consumo de Espaço


rápidos
Resumo

Aprendemos
● Indices
● Arquiteturas para Otimização e Melhoria de Performance de BD
● Indices Clusterizados e Não Clusterizados
● Explain Analyze
● Criar Indices
● Pontos Negativos e Positivos
Exercício

Script inicial:

https://gist.github.com/drsantos20/3a75e0385c015db1c1f5144178778ca0
Exercício

● Agora você já sabe como índices funcionam e como otimizar buscas


em bancos com grande volume de dados neste exercício vamos
executar um SELECT utilizando o analyze na tabela de clientes salvar o
resultado, vamos criar um índice em um campo na tabela clientes e
executar um novo SELECT e comparar o resultado, você pode
compartilhar os arquivos de criação de indice na plataforma da EBAC
● Entregar no formato .sql

Você também pode gostar

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy