Ir para conteúdo
thiago riccieri

Melhorar performance na velocidade da consulta mysqli

Recommended Posts

Como posso melhorar a performance desta consulta mysqli. Ao utilizar o ORDER BY  LIMIT, a performance cai de mais, ficando muito lento.

 

SELECT  
e.idequipamento, e.equipamento, e.circuito, e.conjunto, e.zona, e.idlocalidade, e.trecho, e.soma, e.idregiao, e.idsupervisao, e.kmrede, e.clientes,  
r.mes1, r.mes2,  
g.relatorioanalitico, g.soma, g.iasc, g.planopodas, g.citycity, g.energisaparceira, g.outros  
FROM equipamento AS e  
INNER JOIN rank AS r ON (e.idequipamento = r.idequipamento) 
INNER JOIN gestao AS g ON (e.idequipamento = g.idequipamento)             
WHERE r.mes1>0  AND e.idsupervisao='1' ORDER BY r.mes1 ASC LIMIT 50

 

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 scapedzn
      Olá pessoas! Estou com a seguinte dúvida. Estou fazendo um sistema que é um site onde será possível o cadastro de cursos online. O meu problema é o seguinte. O meu usuário logado salva junto com o nome do curso que ele enviou para o banco dados sua id única de cadastro. Portanto sempre quando ele adicionar qualquer curso, exemplo: aula 1 , junto com isso salva a mesma id de quando ele criou a conta dele, exemplo: 33. Sempre quando ele adicionar novo curso essa id é salva junto para eu saber qual usuário adicionou o novo curso. Porém eu gostaria de listar todos os cursos que o usuário cadastrou para ele mesmo ver. Ou seja, tenho de usar essa ID única dele para pegar todos os nomes de curso que ele adicionou. Não posso dar Select em toda a tabela pois se não ele irá trazer informações que outros usuários adicionaram. Gostaria de listar apenas as informações relacionadas diretamente com o id dele. Não sei se ficou Claro. Mas me ajudem por favor
    • Por stefanys
      Estou desenvolvendo um trabalho voluntario para uma instituição, o site está praticamente pronto para funcionamento, no entanto uma pagina começou a dar erro
       
      SOLICITACAO.PHP
       
      <?php
      include "verifica.php";
              include "conexao.php";

              $usuario = $_SESSION['usuario_usuario'];
              $sql = mysqli_query($db,"SELECT * FROM login where email = '$usuario'");
              while($linha = mysqli_fetch_array($sql)){
                  $_SESSION['id_usuario']= $linha['id_login'];
                  $id_login = $linha['id_login'];
                  $nome = $linha['nome'];
                  $email = $linha['email'];
                  $telefone = $linha['telefone'];
                  $senha = $linha['senha'];
                  $foto = $linha['fotoperfil'];
              }
       if (isset($_POST['cadastrar'])) {
      $idade = $_POST['idade'];
      $endereco = $_POST['endereco'];
      $telefone = $_POST['telefone'];
      $motivo = $_POST['motivo'];
      $castracao = $_POST['castracao'];
      $seguranca = $_POST['seguranca'];
      $cuidados = $_POST['cuidados'];
      $espaco = $_POST['espaco'];
      $doacao = $_POST['doacao'];
      $vida_animal = $_POST['vida_animal'];
      $adaptacao = $_POST['adaptacao'];
      $ciencia = $_POST['ciencia'];
      $mudanca = $_POST['mudanca'];
      $horario = $_POST['horario'];
      $visitas = $_POST['visitas'];
      $acesso = $_POST['acesso'];
      $outro_animal = $_POST['outro_animal'];
      $confirmar = $_POST['confirmar'];
      $id_login = $linha['id_login'];
      $idanimal = $_POST['idanimal'];
             
                 $query =  mysqli_query($db, "INSERT INTO solicitacao (  endereco, telefone, motivo, castracao, seguranca, cuidados, espaco, doacao, vida_animal, adaptacao, ciencia, mudanca, horario, visitas, acesso, outro_animal, confirmar, id_login, idanimal, idade)  VALUES  ('".$endereco."', '".$telefone."','".$motivo."', '".$castracao."', '".$seguranca."', '".$cuidados."', '".$espaco."', '".$doacao."', '".$vida_animal."', '".$adaptacao."', '".$ciencia."',  '".$mudanca."','".$horario."', '".$visitas."', '".$acesso."', '".$outro_animal."', '".$confirmar."',  '".$id_login."', '".$idanimal."','".$idade."')");
                 
                 if($query){
                  echo "<script language='javascript' type='text/javascript'>alert('SUCESSO');window.location.href='perfilusuario.php';</script>";
                 }else{
                   echo"<script language='javascript' type='text/javascript'>alert('Desculpe! Tente novamente!');window.location.href='perfilusuario.php';</script>";
                 }
                 
       }
             
      ?>
       
      ELE ESTÁ APENAS INDO PARA A MENSAGEM DE ERRO, PRECISO DE AJUDA
    • Por leoteixeira2
      Ola pessoal, blz ??? 
       
      Galera estou com uma grande dificuldade para fazer uma consulta MYSQL. Preciso que retorne os produtos e a quantidade venda do mesmo para cada funcionario. Como a tabela a baixo:
       
      ESPECIFICACAO
      TOTAL_VENDAS_LUCAS
      TOTAL_VENDAS_LUIZ
      TOTAL_VENDAS_MARCELO
      PRECO_SC
      PRECO_PR
      CUSTO
      FANDANGOS
      3.5
      6.7
      7.0
      7.90
      8.50
      5.00
      COCA COLA
      5.6
      5.6
      8.0
      8.50
      8.70
      6.00
      ALCATRA
      12.4
      8.2
      6.4
      15.78
      14.47
      10.00
      CERVEJA
      44.8
      54.9
      5.3
      14.75
      10.64
      12.36
      BARALHO
      32.9
      5.0
      4.8
      5.74
      6.20
      4.20
       
      Porém não sei como que estrutura  varios WHERE na mesma consulta, porque são varios funcionarios(5). Tipo o código a baixo só me retorna os valores do funcionario Luiz Henrique. Minha duvida então é o seguinte, como que faço para ter o total_venda de cada funcionario em uma mesma consulta como na tabela acima.
      SELECT DISTINCT(especificacao), preco_sc, preco_pr, custo, SUM(venda_sc) + (venda_pr) as total_venda_luiz FROM pagamentos where funcionario=("Luiz Henrique") and (dia >='01' and dia <='31') and mes=('11') and ano=('2018') GROUP BY especificacao;  
      Alguem poderia me dar uma luz por favor ???? OBRIGADOOO
    • Por leoteixeira2
      Ola pessoal, blz ??? 
       
      Galera estou com uma grande dificuldade para fazer uma consulta MYSQL. Preciso que retorne os produtos e o valor total da venda do mesmo para cada funcionario. Como a tabela a baixo:
       
      ESPECIFICACAO
      TOTAL_VENDAS_LUCAS
      TOTAL_VENDAS_LUIZ
      TOTAL_VENDAS_MARCELO
      PRECO_SC
      PRECO_PR
      CUSTO
      FANDANGOS
      3.5
      6.7
      7.0
      7.90
      8.50
      5.00
      COCA COLA
      5.6
      5.6
      8.0
      8.50
      8.70
      6.00
      ALCATRA
      12.4
      8.2
      6.4
      15.78
      14.47
      10.00
      CERVEJA
      44.8
      54.9
      5.3
      14.75
      10.64
      12.36
      BARALHO
      32.9
      5.0
      4.8
      5.74
      6.20
      4.20
       
      Porém não sei como que estrutura  varios WHERE na mesma consulta, porque são varios funcionarios(5). Tipo o código a baixo só me retorna os valores do funcionario Luiz Henrique. Minha duvida então é o seguinte, como que faço para ter o total_venda de cada funcionario em uma mesma consulta como na tabela acima.
      SELECT DISTINCT(especificacao), preco_sc, preco_pr, custo, SUM(venda_sc) + (venda_pr) as total_venda_luiz FROM pagamentos where funcionario=("Luiz Henrique") and (dia >='01' and dia <='31') and mes=('11') and ano=('2018') GROUP BY especificacao;  
      Alguem poderia me dar uma luz por favor ???? OBRIGADOOO
    • Por leoteixeira2
      Ola pessoal, blz ??? 
       
      Galera estou com uma grande dificuldade para fazer uma consulta MYSQL. Preciso que retorne os produtos e a quantidade venda do mesmo para cada funcionario. Como a tabela a baixo:
       
      ESPECIFICACAO
      TOTAL_VENDAS_LUCAS
      TOTAL_VENDAS_LUIZ
      TOTAL_VENDAS_MARCELO
      PRECO_SC
      PRECO_PR
      CUSTO
      FANDANGOS
      3.5
      6.7
      7.0
      7.90
      8.50
      5.00
      COCA COLA
      5.6
      5.6
      8.0
      8.50
      8.70
      6.00
      ALCATRA
      12.4
      8.2
      6.4
      15.78
      14.47
      10.00
      CERVEJA
      44.8
      54.9
      5.3
      14.75
      10.64
      12.36
      BARALHO
      32.9
      5.0
      4.8
      5.74
      6.20
      4.20
       
      Porém não sei como que estrutura  varios WHERE na mesma consulta, porque são varios funcionarios(5). Tipo o código a baixo só me retorna os valores do funcionario Luiz Henrique. Minha duvida então é o seguinte, como que faço para ter o total_venda de cada funcionario em uma mesma consulta como na tabela acima.
      SELECT DISTINCT(especificacao), preco_sc, preco_pr, custo, SUM(venda_sc) + (venda_pr) as total_venda_luiz FROM pagamentos where funcionario=("Luiz Henrique") and (dia >='01' and dia <='31') and mes=('11') and ano=('2018') GROUP BY especificacao;  
      Alguem poderia me dar uma luz por favor ???? OBRIGADOOO
×

Informação importante

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