Вы находитесь на странице: 1из 25

Aula 1

Sistema Gerenciador
de Banco de Dados

Prof. Martin Morães


Contextualizando

• Índices x performance.
• Quando usar uma View?
Índice

• Sem índices – Busca sequencial


• Com índices – Busca indexada
• Tabela aux. ordenada
Índice

• Quando os índices são utilizados?


Índice

• Localizar os registros que atendem a clausula where;

• Exemplo
SELECT * FROM professores pr
WHERE pr.pais = "AA";
Índice

•Para recuperar registros de outras


tabelas ao realizar joins;

• 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

• Para encontrar o valor MIN () ou MAX () quando a coluna indicada está


indexada;

• 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.

 Neste formato a view


é anônima e isto
implica que a mesma
não será reutilizada
em outros processos.
VIEW
• Aplicação
• simplificar as consultas
• integridade dos dados
• autorização de acesso
VIEW
CREATE [OR REPLACE]
VIEW view_name [(column_list)]
AS select_statement

• 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?

Вам также может понравиться