Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde,
Preciso de uma ajuda para fazer uma otimização na minha busca, tenho o seguinte panorama:
São 80mil registros, onde eu preciso fazer uma busca nas seguintes colunas "nomeDoProduto, marca, descricao e loja"
O problema é que minha busca está demorando demaisssss... não sei como resolver isso.
Segue como estou fazendo, se alguém puder me dar uma ajuda, fico grato.
BUSCA COM UMA PALAVRA: "VESTIDO"
SELECT idProduto, produto, preco FROM produtos WHERE (produto LIKE '%vestido%' OR marca LIKE '%vestido%' OR descricao LIKE '%vestido%' OR loja LIKE '%vestido%') AND disponivel = 1
BUSCA COM DUAS PALAVRAS: "VESTIDO DE BOLINHA"
SELECT idProduto, produto, preco FROM produtos WHERE (produto LIKE '%vestido%' OR marca LIKE '%vestido%' OR descricao LIKE '%vestido%' OR loja LIKE '%vestido%') AND (produto LIKE '%bolinha%' OR marca LIKE '%bolinha%' OR descricao LIKE '%bolinha%' OR loja LIKE '%bolinha%') AND disponivel = 1
Pesquise sobre Full Text
https://en.wikipedia.org/wiki/Full-text_search
e de uma olhada em Elasticsearch
>
1 hora atrás, dev_thiagosilva disse:
você ta mostrando o que exatamente ele tem que mostrar???? Pode ser que ele esteja correndo onde nao seja preciso ir... se possivel tem como colocar o código? vamos resolver isso
Oi Thiago, tudo bom?
Sim estou mostrando o que eu preciso. E sobre a busca é exatamente isso, preciso buscar nesses campos.
A segunda forma que fiz com dois termos fica mais lento ainda.
Meu resultado é diferente se eu buscar apenas "vestido de bolinha" nessas colunas. Quando busco por "vestido OR bolinha" fica lento.
Essa demora não é normal, ainda mais se a linha sql for exatamente como essa que você mostrou, a consulta deveria ser quase instantânea, mesmo com 80 mil registros. Muito provavelmente o problema não está na linha sql, mas no código em si.
Poem o código onde você faz a consulta aqui pra gente ver.
Oi Bruno,
A query é bem essa ai, na verdade eu pego mais uns 5 campos da tabela de produtos.
Só que depois de pegar os dados, entra em "while" que eu faço outras 3 query. Que são para pegar foto e outras informações relevantes para listar as informações dos produtos.
Mas a query principal é essa informada acima.
Abs
>
Em 16/06/2018 at 00:07, BrunoBit disse:
Essa demora não é normal, ainda mais se a linha sql for exatamente como essa que você mostrou, a consulta deveria ser quase instantânea, mesmo com 80 mil registros. Muito provavelmente o problema não está na linha sql, mas no código em si.
Poem o código onde você faz a consulta aqui pra gente ver.
Oi Bruno,
A query é bem essa ai, na verdade eu pego mais uns 5 campos da tabela de produtos.
Só que depois de pegar os dados, entra em "while" que eu faço outras 3 query. Que são para pegar foto e outras informações relevantes para listar as informações dos produtos.
Mas a query principal é essa informada acima.
Abs
você ta mostrando o que exatamente ele tem que mostrar???? Pode ser que ele esteja correndo onde nao seja preciso ir... se possivel tem como colocar o código? vamos resolver isso