Ir para conteúdo
Fórum Script Brasil
  • 0

view lenta.. não consigo criar indice na view MySQL


Guest webroger

Pergunta

Guest webroger

Ola pessoal, criei uma view com mais de 600 mil registros..

preciso fazer buscas nela, mas está muito lenta... porem a minha view não tem nenhum indice... ou seja, a minha query esta varrendo a tabela inteira, causando

muita lentidao...

CREATE OR REPLACE view por_cep

as

select id_cep, rua. id_rua, cep_cep, id_bairro_ini, id_bairro_fin, nomec_rua, compl_rua, nome_bairro, cidades.id_cidades, estados.id_estados, nome_cidades, sigla_estados

from cep

inner join rua on cep.id_rua = rua.id_rua

inner join bairro on rua.id_bairro_ini = bairro.id_bairro

inner join cidades on bairro.id_cidades = cidades.id_cidades

inner join estados on cidades.id_estados = estados.id_estados order by id_bairro_ini, nome_bairro, nome_cidades

PRECISO CRIAR O INDICE NO CAMPO cep_cep e nos campos do inner join...

então estou tetando criar indices nos campos, mas ocorre erro: 'a tabela por_cep não é uma tabela base'

estou usando a engine MyIsam para a view

ESPERO A AJUDA DOS COLEGAS URGENTE...

DESDE já AGRADEÇO. ABRAÇOS

WEBROGER

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Oi,'webroger'

O MySQL não permite a criação de índices para views. Ver Manual Mysql Versão 5, Capítulo 19 Seção 19.2. CREATE VIEW Syntax.

Solução: Usar diretamente o select (de forma otimizada) que serviu de base para a criação da view.

Link para o comentário
Compartilhar em outros sites

  • 0

Oi,'webroger'

Mais uma recomendação. Estude sobre Views Materializadas. Este link tem o conceito do que é uma View Materializada e dentro dele tem links de como montar estes tipos de views.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.


  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...