Академический Документы
Профессиональный Документы
Культура Документы
Sistema Gerenciador
de Banco de Dados
• Índices x performance.
• Quando usar uma View?
Índice
• Exemplo
SELECT * FROM professores pr
WHERE pr.pais = "AA";
Índice
• Exemplo
SELECT * FROM aula au
INNER JOIN
alunos al on al.id = au.idaluno
INNER JOIN
professores pr on pr.id = au.idprofessor
WHERE pr.pais = "AA";
Índice
• Exemplo
SELECT max(idprofessor),
min(idprofessor)
from aula
Índice
• Para ordenar ou agrupar uma tabela se a ordenação ou agrupamento for
feito com campos indexados;
• Exemplo
Índice
SELECT pr.nome, count(*)
FROM aula au
INNER JOIN
alunos al on al.id = au.idaluno
INNER JOIN
professores pr on pr.id =
au.idprofessor
WHERE pr.pais = "AA“
group by pr.nome
order by pr.nome
O Mecanismo do Índice
Criando Índice
create table alunos(
id int not null primary key,
nome varchar(80),
dtnasc datetime,
fone varchar(45),
email varchar(100),
INDEX(nome),
INDEX(email),
INDEX(fone));
Criando Índice
CREATE INDEX nome_do_index ON nome_tabela (nome_coluna);
Exemplo
CREATE INDEX idx_nome
ON alunos(nome);
Excluíndo Índice
DROP INDEX nome_do_index ON nome_tabela;
• Exemplo
DROP INDEX idx_nome
ON alunos;
Cuidados com Índice
• Os índices dão um grande ganho na performance das consultas, mas
degradam a performance nas operações inserção.
Isto se dá pela
necessidade de indexar
os novos valores.
As VIEW
VIEW
• As view são tabelas virtuais
• É uma forma de disponibilizar dados que que estejam
na base de dados
• Atendem a determinadas especificações
• Sempre atualizadas
VIEW
• view em linha também é conhecido como sub-query no from.
• Exemplo
VIEW
CREATE view lista_nomes(professor, aluno)
as
SELECT p.nome, a.nome
from aula
left join alunos a
on aula.idaluno = a.id
left join professores p
on aula.idprofessor = p.id;
Consultando uma VIEW
SELECT *
FROM lista_nomes
ORDER BY 1
LIMIT 5;
VIEW
DROP VIEW [IF EXISTS]
view_name [, view_name] ...
• Exemplo
DROP VIEW lista_nomes;
Síntese
Conversa Inicial
• Índices
• Views
Contextualizando
• Índices x performance.
• Quando usar uma View?