Baixe o app para aproveitar ainda mais
Prévia do material em texto
Aula 1 Sistema Gerenciador de Banco de Dados Prof. Martin Morães Conversa Inicial Índices Views Contextualizando Índices x Performance Quando usar uma view? Pesquisa Os Índices Índices Sem índices: busca sequencial Com índices: busca indexada Tabela auxiliar ordenada Quando os índices são utilizados? Localizar os registros que atendem à cláusula where Exemplo SELECT * FROM professores pr WHERE pr.pais = "AA" 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" Para encontrar o valor MIN () ou o valor MAX () quando a coluna indicada está indexada Exemplo SELECT max(idprofessor), min(idprofessor) from aula Para ordenar ou agrupar uma tabela se a ordenação ou o agrupamento for feita(o) com campos indexados Exemplo 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)); CREATE INDEX nome_do_index ON nome_tabela (nome_coluna); Exemplo CREATE INDEX idx_nome ON alunos(nome); Excluindo Í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ções Isso se dá pela necessidade de indexar os novos valores As Views Views As views são tabelas virtuais Uma forma de disponibilizar dados que estejam na base de dados Atendem a determinadas especificações Sempre atualizadas View em linha também é conhecida como sub-query no from Nesse formato a view é anônima, e isso implica que a mesma não será reutilizada em outros processos Aplicações Simplificar as consultas Integridade dos dados Autorização de acesso CREATE [OR REPLACE] VIEW view_name[(column_list)] AS select_statement Exemplo 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; 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?
Compartilhar