Banco de Dados Otimização
1) Quais colunas de uma tabela são candidatas a criação de índices?
R: As colunas que usamos para pesquisa, ordenação ou agrupamento.
2) Quais tipos de dados devem ser evitados em tabelas, de forma a melhorar a performance em uma consulta?
R: Tipos de dados variáveis, como varchar devem ser evitados.
3) Quais as vantagens e desvantagens da utilização de índices?
R: Possuem registros de tamanho fixo, são menores que o arquivo de dados, utilizam busca binária.
Desvantagens: Torna lenta operações de escrita e ocupam espaço no disco.
4) Por que sub-consultas devem ser evitadas em SQL?
R: O otimizador está mais ajustado para joins do que subconsultas.
5) O que faz o comando EXPLAIN do MySQL?
R: Mostra informações de como a consulta será executada(plano de acesso).
6) Qual a vantagem de utilizar colunas NOT NULL e ENUM?
R: Colunas NOT NULL agilizam o processamento e simplificam consultas porque não é necessário checar por valores nulos. Já o ENUM cria um representação numérica (internamente) uma coluna string de baixa cardinalidade.
7) Resuma as 14 dicas de Otimização de consultas em MySQL em 5 dicas que você considera mais importantes
1- Comparar colunas que tenham o mesmo tipo;
2- Evitar subconsultas;
3- Evitar junções sobre cadeias de caracteres;
4- Evitar sobrecarga de conversões de tipos em expressões de comparação;
5- Consultas com múltiplas condições de seleção conectadas por OR devem ser substituídas por uma união de consultas, se existir índice no atributo a ser utilizado 8) Quais são os tipos de índices? Explique cada um deles.
R: Ordenados, baseiam-se na ordenação de valores e Hash que se baseiam na distribuição uniforme de valores por meio de uma faixa de buckets.
9) Quais são os índices “automáticos” que os SGBDs geram?
R: Índices sobre as chaves primárias e estrangeiras
10) O que você mudaria, visando otimizar as seguintes consultas sobre o bd acadêmico: