Jump to content
Hugo_Santos

Deixar Consulta no MySQL mais rápida

Recommended Posts

Preciso fazer uma consulta em um banco com 7 milhões de registros, mais precisamente 7.387.951 milhões, já adicionei as devidas index porém continua muito lento, será que alguem poderia me ajudar?

 

 

SELECT a.nome_candidato,a.numero_cand,a.sigla_partido,SUM(a.total_votos) as total_votos,a.ds_tot_turno FROM votacao_candidato a WHERE a.ds_cargo='Deputado Estadual' AND a.sigla_uf='SP' AND a.nome_municipio='santos' AND a.desc_sit_candidato='DEFERIDO' GROUP BY a.sq_candidato ORDER BY a.total_votos DESC LIMIT 10

Edited by Hugo_Santos
mostrar o código

Share this post


Link to post
Share on other sites

Posta ai seu código como você está fazendo essa sua consulta.

 

Mas já antecipando, não sei se é seu caso, vejo um erro de algumas pessoas trazerem uma quantidade alta de registro e quererem mostrar tudo na tela, principalmente utilizando aquele componente datatable, com isso ele demora mesmo para montar o correto seria você trazer trechos dessa consulta.

Share this post


Link to post
Share on other sites
15 horas atrás, wolfphw disse:

Posta ai seu código como você está fazendo essa sua consulta.

 

Mas já antecipando, não sei se é seu caso, vejo um erro de algumas pessoas trazerem uma quantidade alta de registro e quererem mostrar tudo na tela, principalmente utilizando aquele componente datatable, com isso ele demora mesmo para montar o correto seria você trazer trechos dessa consulta.

Editei o tópico com o código

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By joaovitor102
      $_SESSION['cart'] = MD5('@?#'.$resp['cpfCliente'].'@'.date("d-m-Y H:i:s")); a nota pega esses dados porem não esta armazenando no bdds
      <?php require_once '../App/auth.php'; require_once '../layout/script.php'; require_once '../App/Models/cliente.class.php'; require_once '../App/Models/vendas.class.php'; echo $head; echo $header; echo $aside; ?> <div class="content-wrapper"> <!-- Content Header (Page header) --> <section class="content-header"> <h1> Vendas </h1> <ol class="breadcrumb"> <li><a href="../"><i class="fa fa-dashboard"></i>inicia</a></li> <li class="active">Vendas</li> </ol> </section> <!-- Main content --> <section class="content"> <?php require '../layout/alert.php'; ?> <!-- Small boxes (Stat box) --> <div class="row"> <div class="box box-primary"> <!-- /.box-header --> <div class="box-body"> <div class="row"> <div class="box-body"> <div class="col-xs-12 col-sm-12"> <?php if(isset($_SESSION['msg']) != NULL) { echo $_SESSION['msg']; } ?> </div> </div> <div class="row"> <div class="box-body"> <div class="col-xs-12 col-sm-12"> <div class="table-responsive"> <table id="mytable" class="table table-bordred table-striped" border="2"> <?php $cartvd = $_SESSION['notavd']; $vendas = new vendas; $row = $vendas->notavd($cartvd); $idNota=$row[0]['idvendas']; $cliente = new cliente; $dados = $cliente->dadoscliente($row[0]['cliente_idCliente']); ?> <tr> <h1 style=""><b>Nota de Venda- Dentista do Sorriso</b></h1> <td><b>Numero da Nota: </b><?php echo $idNota; ?> </td> <td colspan="5"> <b>Cliente: </b><?php echo $dados['NomeCliente']; ?> </br><b>CPF:</b> <?php echo connect::format_CPF($dados['cpfCliente']); ?> </td> <tr> <tr> <td><b>Cod.</b></td> <td><b>Produto</b></td> <td><b>Qtde</b></td> <td><b>Valor Produto.</b></td> </tr> <?php $soma = 0; foreach ($row as $key) { $vendas = new vendas; $dadosItem = $vendas->dadosItem($key["iditem"]); $nomeProduto = $dadosItem['NomeProduto']; echo "<tr>"; echo '<td>' .$key["iditem"]. '</td>'; echo '<td>' .$nomeProduto. '</td>'; echo '<td>'. $key["quantitens"] . '</td>'; echo '<td>'; echo connect::format_moeda($key['valor']); echo '</td>'; echo "</tr>"; $soma = $soma + $key["valor"]; } ?> <tr> <td colspan="4">Data: <?php echo date('d M Y'); ?> </td> <td><h4><b>Total:</b></h4> <?php echo connect::format_moeda($soma); ?></td> </tr> </table> </div> </div> </div> </div> </div> </div> </div> <a href="./"><button class="btm btm-success">Voltar</button></a> </section> </div> <?php unset($_SESSION['msg'],$_SESSION['CPF'], $_SESSION['Cliente'], $_POST); echo $footer; echo $javascript; ?> <!-- Fim no codigo --> public function notavd($cart){ $query = "SELECT * FROM `vendas` WHERE `cart` = '$cart'"; if($this->result = mysqli_query($this->SQL, $query) or die (mysqli_error($this->SQL))){ while($row = mysqli_fetch_array($this->result)){ $out[] = $row; } } return $out; }//--notavd Estou com um problema com o foreach
    • By violin101
      Caros amigos, saudações...
       
      Estou com uma pequena dúvida. Preciso comparar data da seguinte forma:

      abertura do mês: 11/2019
      data das vendas: 01/11/2019 até 30/11/2019
       
      o formato para inserir no banco de dados a Abertura do Mês é date('m/Y') -------- corresponde a isso: 11/2019
      o formato para inserir no banco de dados a Data das Vendas é date('d/m/Y')  --- corresponde a isso: 01/11/2019 até 30/11/2019
       
      como faço para comparar a ABERTURA dos MESES com as DATAS de VENDAS ?
       
      Grato,
       
      Cesar
    • By granderodeo
      Olá tenho a página index.php e tenho a página product.php, ao clicar no produto na página inicial, quero que redirecione para página product.php mostrando os dados do determinado produto que cliquei, iniciei o código mais não está dando certo, Obrigado.
       
      index.php
      <?php if (is_array($products)) { foreach ($products as $id => $row) { ?> <div class="col-sm-6 col-md-4 col-lg-3 mb-2"> <div class="card-deck"> <div class="card p-2 border-secondary mb-2"> <a href="product.php?id=<?= $row['product_id'] ?>"> <div class="hover-image"> <img class="card-img-top border-secondary" src="images/<?= $row['product_image'] ?>"/> <a href="#"><span class="texto"></span></a> </div> </a> <h3 class="text-center"><?= $row['product_name'] ?></h3> <div class="text-center text-black rounded p-1" style="font-size: 20px;">Valor&nbsp;$<?= $row['product_price'] ?></div> <button class="btn btn-success btn-block" type="button" value="Add to cart" onclick="cart.add(<?= $row['product_id'] ?>);">Adicionar ao carrinho</button> </div> </div> </div> <?php } } else { echo "No products found."; } ?>  
      product.php
      <?php $products = $_GET["product_id"]; if (is_array($products)) { foreach ($products as $id => $row) { }}; $row['product_name'] ?>  
    • By Koromon
      Olá amigos, preciso de uma ajuda
      Quero utilizar o comando 
      SET SQL_SAFE_UPDATES = 0; depois, quero usar um comando de substituição de caractere
       
      UPDATE tabela SET coluna = REPLACE (coluna, 'caractere_antigo' , 'novo_caractere'); e pra finalizar:
      SET SQL_SAFE_UPDATES = 1; para voltar ao modo "SQL_SAFE_UPDATES" original;  
      se eu só colocar pra rodar, o Mysql só considera a minha ultima linha de comando, o "SET SQL_SAFE_UPDATES = 1;"
      Então, pra dar certo, eu teria que realizar uma linha de cada vez.
      Pesquisei na internet e achei o comando WAITFOR DELAY, mas o meu mysql retorna a seguinte mensagem:
      Error Code: 1064. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near WAITFOR DELAY '00:00:01'; at line 1;
      Alguém sabe uma solução?
       
      O script utilizado foi:
      SET SQL_SAFE_UPDATES = 0; WAITFOR DELAY '00:00:01'; UPDATE tabela SET coluna = REPLACE (coluna, 'caractere_antigo' , 'novo_caractere'); SET SQL_SAFE_UPDATES = 1;  
    • By izacgaldino
      Olá pessoal esse é meu primeiro tópico então me desculpem por qualquer coisa.
       
      Depois de uma longa busca quase sem resultados venho buscar ajuda aqui. Tenho uma necessidade que é de automatizar minha área de pagamentos onde uma vez por mês tenho que fazer muitas transferências bancárias manualmente, preciso de uma forma de automatizar isso. Eu recebo pagamentos pelo pagseguro mas após um tempo preciso transferir uma % desses valores para outras contas. 
       
      Nos meus resultados encontrei a ferramenta TRANSFEERA, ela é nova e encontrei pouco conteúdo sobre ela.
       
      Vocês teriam alguma sugestão?
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.