Ir para conteúdo
Adriano Barbosa

Query lenta, como otimizar

Recommended Posts

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.

 

Citar

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

 

Utilizo PHP + MySQL

 

Atenciosamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o engine da sua tabela... tabelas mySam acredito que são mais lentas do que as em innodb.

Indexando estas colunas talvez a velocide melhore também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

  • Conteúdo Similar

    • Por artur0407
      Boa noite;
       
      Estou realizando testes com a biblioteca PDO para banco de dados com PHP;
      Logo de inicio estou realizando minha conexão com o banco utilizando um código simples nativo da biblioteca.
      No entanto, mesmo errando o código propositalmente e tendo setado todos os possíveis erros e tratando com o bloco "try catch" o php não me retorna erro de nenhuma forma.
       
      Abaixo ambos os códigos;
       
      Primeiro sem erros:
      <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:host=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Posteriormente com erro proposital (na string de conexão da classe PDO)
      <?php ini_set('display_errors',true); ini_set('display_startup_erros',1); error_reporting(E_ALL); $username = 'root'; $password = ''; $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_CASE => PDO::CASE_NATURAL, PDO::ATTR_ORACLE_NULLS => PDO::NULL_EMPTY_STRING, PDO::ATTR_PERSISTENT => true ]; try { $conn = new PDO('mysql:hst=localhost; dbname=test', $username, $password, $options); $conn->exec("set names utf8"); } catch(PDOException $e) { echo 'ERROR: ' . $e->getMessage(); } ?> Observem que no construtor do pdo, no lugar de host escrevi 'hst' e o php não retorna erros!
       
      Como sou novo aqui, me desculpem algum erro de formatação na mensagem, obrigado!
    • Por BryanSamuel
      Eu gostaria de importar dados de uma planinha que esteja em .xls para mysql, por exemplo, tem uma página html simples onde o usuário vai enviar a planilha, e com isso eu quero importar para uma base de dados, mas tem um porém, por exemplo, tem uma coluna com o número da matrícula de cada aluno, eu gostaria de fazer uma verificação, para que se já existisse um aluno com a matrícula igual, atualizasse somente determinadas colunas, como por exemplo, a coluna turma e a coluna turno, eu sei que parece pedir demais mas eu sou bem novato em php e mysql, se alguém puder ajudar agradeço desde já, abraço. 
      obs. de preferência, se tiver como importar direto de .xls eu agradeço, mas caso só de com .csv também serve
    • Por sobrinnho
      Olá pessoal, sou novo aqui e preciso da ajuda de vocês, fiz um site no dreamweaver CS6 e preciso conectar ele no BD do meu servidor online, no localhost consigo fazer as conexões, mas na hora de configurar pra o online só aparece erros.

    • Por paulaodaregulage
      Boa noite,
      Alguém saberia me dizer, como eu poderia descobrir o caminho de um arquivo no pc pela página web.
       
      assim:
      <form method="post" action="" enctype="multipart/form-data"> <input type="file" name="arquivo" /> <!--ele so mostra o arquivo que foi clicado e n o caminho completo...--> <input type="submit" value="Enviar" /> </form> e ao clicar no arquivo(arquivo.pdf ou video.mp4) desejado ,ele me daria  o caminho deste ,para que eu pudesse enviar  este caminho para meu banco de dados(mysql)
       
      exemplo : pasta1\pasta2\arquivo.pdf
       
      pq estou tendo dificuldades para enviar arquivos em pdf ou mp4 para uma pasta via web
      e desse jeito eu só teria q colocar o arquivo ou o vídeo na pasta manualmente e depois na pagina web eu só teria que clicar neste caminho para que a página encontrasse.
       
       
       

    • Por matheusdsanjos
      Olá pessoal, estou desenvolvendo uma loja virtual e cadastrei os produtos de meu desejo em uma tabela dentro de um banco de dados com MySQL para depois mostrar todos automaticamente na página, dentro da tabela produtos no atributo preço cadastrei tudo desta maneira: "9.90", mas agr que fiz aparecer tudo na página todos os preços estão aparecendo com ponto e quero mudar isso para o preço aparecer com vírgula assim: "9,90", mas só aparecer para na página mesmo e quero que no banco de dados continue com ponto.
       
      Expliquei de um jeito sem muitos termos técnicos, desculpem-me se está de um jeito difícil de  entender.
       
      Se alguém puder me ajudar, agradeço!

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.