Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Francisco Pessoa

Otimizar mysqld.cnf

Recommended Posts

Opa pessoal, beleza?

 

Seguinte, aparentemente o meu mysql está limitando o tamanho das minhas consultas, quando realizo uma pesquisa com intervalo de 10 dias, ex:

 

SELECT dados FROM table WHERE data BETWEEN '2019-02-01 00:00:00' AND '2019-02-10 00:00:00'

 

Me retorna 58110 dados com tempo de 4 segundos, porém se eu adicionar um dia a mais nessa pesquisa a consulta é retornada em 2 minutos... e me são retornados 73 mil dados, ex:

 

SELECT dados FROM table WHERE data BETWEEN '2019-02-01 00:00:00' AND '2019-02-11 00:00:00'

 

O meu MySQL está na versão 5.7.25, e estes são os parametros que estão no meu mysqld.cnf:

 

user                                    = mysql
pid-file                                = /var/run/mysqld/mysqld.pid
socket                                = /var/run/mysqld/mysqld.sock
port                                     = 3306
basedir                               = /usr
datadir                                = /var/lib/mysql
tmpdir                                 = /tmp
lc-messages-dir                = /usr/share/mysql
skip-external-locking
bind-address                      = 0.0.0.0
key_buffer_size                  = 16M
max_allowed_packet        = 16M
thread_stack                      = 192K
thread_cache_size            = 8
myisam-recover-options  = BACKUP
query_cache_limit             = 1M 
query_cache_size              = 16M 
log_error = /var/log/mysql/error.log

 

Meu servidor é um Dell PowerEdge R310, com 4GB de RAM processador de 8 núcleos e placa mãe server

Poderiam me auxiliar na configuração deste arquivo (mysqld.cnf) para corrigir este meu problema? grato desde já.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tem algo diferente no dia 11 !?

 

Rodou a sql com count(*) para :

1/2 a 10/2 ?

1/2 a 11/2 ?

11/2 a 11/2 ?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Motta disse:

Tem algo diferente no dia 11 !?

 

Rodou a sql com count(*) para :

1/2 a 10/2 ?

1/2 a 11/2 ?

11/2 a 11/2 ?

 

 

Não, na verdade o dia não importa, se eu fizer a mesma consulta em um mês diferente irá apresentar o problema, me parece ser uma restrição de memória devido o tamanho do select ou algo do tipo, até uma quantidade x de dados retorna ok,  depois disso a consulta parece que "trava" e demora muito para rodar.

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por gramosiri2
      Oi estou tentando passar um valor através de uma variável em uma query, porém não está mostrando o resultado que eu quero.
       
      Aqui eu pego o ultimo id do pedido
      <?php while($row = $consulta_pedido2->fetch_assoc()){ echo $row['id_pedido']; }?> E aqui eu faço a query e passo variável...
      $query ="SELECT itempedido.id_itempedido, itempedido.valor, ... FROM itempedido INNER JOIN produto ON ... WHERE itempedido.pedido_id = '$row'"; No caso onde está a variável $row, se eu colocar o numero do pedido manualmente, me retorno os itens daquele pedido, agora com a variável não está mostrando, alguma ideia?
    • Por Guga Alves
      Estou estudando a criação de formulários dinâmicos, no qual é possível add, um novo campo para preenchimento de novos dados no campo adicionado.
      Todas as etapas estão funcionando, porém estou travado na hora de salvar.
      Quanto coloco para salvar o script que faz conexão com o banco, manda apenas o primeiro laço para o banco e descarta os que foram adicionados dinamicamente com o botão:
       
      Meu código html
      <button type="button" class="btn-success" id="add-campo"> + Registro </button> <form id="add-aula" class="container-fluid" method="post"> <div id="formulario"> <br /><br /> <div class="form-group"> <label>Informe os seus dados de cadastro: </label><br /><br /> <div class="form-box"> <input class="nome" type="text" name="nome[]" placeholder="Nome"> <input class="sobrenome" type="text" name="sobrenome[]" placeholder="Sobrenome"> </div> <div class="form-box"> <input class="email" type="email" name="email[]" placeholder="exemplo@exemplo.com.br"> <input class="telefone phone" type="text" name="telefone[]" placeholder="(XX) XXXXX-XXXX"> <input class="cpf" type="text" name="cpf[]" placeholder="XXXX-XXXX-XXX-XX"> </div> </div> </div> <button type="button" id="cadAulas" name="cadAulas" class="submit">Cadastrar</button> </form> Meu código JS
       
      var cont = 0; $("#add-campo").click(function () { cont++ $("#formulario").append('<div id="campo' + cont + '" class="form-group"><div class="form-box"><input class="nome" type="text" name="nome[]" placeholder="Nome"><input class="sobrenome" type="text" name="sobrenome[]" placeholder="Sobrenome"></div><div class="form-box"><input class="email" type="email" name="email[]" placeholder="exemplo@exemplo.com.br"><input class="telefone phone" type="text" name="telefone[]" placeholder="(XX) XXXXX-XXXX"><input class="cpf" type="text" name="cpf[]" placeholder="XXXX-XXXX-XXX-XX"></div><div class="container-btn"><button type="button" id="' + cont + '" class="btn-remove"> - Registro </button></div></div>'); }); $('form').on('click', '.btn-remove', function () { var button_id = $(this).attr('id'); $('#campo' + button_id + '').remove(); }); $("#cadAulas").click(function () { var dados = $("#add-aula").serialize(); $.post("insert.php", dados , function (retorna) { $("#msg").html(retorna); $('#add-aula')[0].reset(); //removeMsg(); }); }); function removeMsg(){ setTimeout(function () { $("#msg").slideUp(); $("div.second").slideUp('slow' , function(){}); }, 200000); } meu código php:
      $rows = array($_POST); $return = false; foreach ($rows as $key => $row){ $query = "INSERT INTO cicero(nome, sobrenome, email , telefone, cpf) VALUES (? , ? , ? , ? , ?)"; $insert = $conn->prepare($query); $insert->bindValue( 1 , $row['nome'][$key]); $insert->bindValue( 2 , $row['sobrenome'][$key]); $insert->bindValue( 3 , $row['email'][$key]); $insert->bindValue( 4 , $row['telefone'][$key]); $insert->bindValue( 5 , $row['cpf'][$key]); if($insert->execute()){ $return = true; }else{ $return = false; } } if($return){ echo '<p class="success">Cadastro realizado com sucesso.</p>'; }else{ echo '<p class="erro">Ops, algo deu errado, não foi possivel realizar o cadastro.</p>'; } echo $i."<br/>"; Alguém que tem manje de manipulação de arrays pode me ajudar.
       
      ps. Importante, estou manipulando o POST com serialize() do jQuery
    • Por Rodrigo F
      Olá a todos boa tarde bem eu venho a este forum , porque eu preciso de ajuda bem eu tenho um site que estou a fazer para uma empresa no qual agora nao posso revelar o nome mas a minha duvida é a seguinte bem , nesse site nos temos um sisteam de login e register até ai tudo normal   agora o que eu queria eraaa o seguinte por exemplo eu na minha base de dados eu tenho o antonio registado e tenho o andre , eu quero que quando o andre de login e fosse para o seu perfil , la no perfil iria ter do genero fotos do verao ,  e quando o antonio fosse dar login e fosse ao perfil tivesse  fotos do natal , como posso  editar a pagina de cada um ??? 
      essa é a minha duvida como eu posso editar a pagina de cada com as coisas que eu pretendo menter para cada usuario
       xd
       
       
    • Por Giovanna Hummel
      Pessoal, 
      Estou fazendo uma ferramenta que possibilita algumas inserções de dados. Consegui realizar o input de dados em uma pagina e ao criar outra, não está funcionando. A página não apresenta erros no navegador porém não insere no banco.
       
      segue foto da tabela criada no PHPMyAdmin

       
      O código é:
       
      <?php
      $conecta = mysqli_connect("localhost", "root", "", "teste bd");
      if (mysqli_connect_errno() ) {
          die("Conexão falhou: " . mysqli_connect_errno());
          # ...
      }
      ?>
      <?php
          //Teste de segurança
          session_start();
          if (!isset($_SESSION["user_portal"])) {
          header("location:paginainicial.php");
                 }     
        $id_usuario = $_SESSION["user_portal"];
      ?>

      <!DOCTYPE html>
      <html lang="pt-BR">
          <head>
              <img alt="Logo da empresa" title="Aqui é apresentado a logo da empresa Motir&otilde;" src="Logomenor.png"/>
              <div class="container">Adicionar atividade</div>
          
          
          </head>
          <body>
              <input  type="file" class="Upload">
              <label for="file">Escolha um arquivo</label>
      <form name="nova_atividade" action="adicionaratividade2.php" method="POST">
              <div id="nome-box-label"> Nome da atividade </div>
              <div class="input-div" id="input-nome"> 
                  <input type="text" value="Nome" onfocus="if (this.value=='Nome') this.value='';" onblur="if (this.value=='') this.value='Nome'"/>
              </div>
              <div id="descricao-box-label"> Descreva a atividade adicionada: </div>
              </b>
              <div class="textarea">
                  <textarea type="text" id="Descri&ccedil;&atilde;o" name="Descricao" rows="7" cols="60" maxlength="150" wrap="soft"></textarea>
              </div>
              <input type="submit" name="Enviar" >
      </form>
              
          </body>
          </html>
       
      <?php
      $conecta = mysqli_connect("localhost", "root", "", "teste bd");
      if (mysqli_connect_errno() ) {
          die("Conexão falhou: " . mysqli_connect_errno());
          # ...
      }
      if(isset($_GET['id_projeto'])){
      $id_projeto = (int) $_GET["id_projeto"];
      echo $id_projeto;
      }
      if(isset($_POST['nome'])){
          $nome = $_POST["nome"]; 
        }
      if(isset($_POST['descricao'])){
          $descricao = $_POST["descricao"];
        
       
          $string_sql = "INSERT INTO atividade (id_atividade,nome_atividade,descricao_atividade, anexo,datacriacao_atividade,alerta,id_projeto) VALUES (null,'$nome','$descricao',null,'oi','$id_projeto')"; //String com consulta SQL da inserção
          mysqli_query($conecta,$string_sql); //Realiza a consulta
      }
      ?>
      <?php
          // Fechar conexao
          mysqli_close($conecta);
      ?>
          
    • Por AllysonSouza
      Bom, na parte de alterar a imagem de perfil do usuário, quando clica em alterar ela volta para o perfil porem continua a imagem antiga, mas na pasta aonde as imagens ficam salva, ela ja foi alterada, ai depois de um certo tempo, a imagem é alterada também no perfil, eu não uso o UNLINK será que pode ser isso? se sim, alguem poderia me ajudar a implementar em meu codigo:
       
      <?php $foto = "perfil"; $type = ".jpg"; //Verificar se o post n�o est� vazio if(!empty($_FILES)){ //Executa ação para alterar $imagem = $_FILES['fimagem']; //REsgatar o caminho da imagem $caminhoImagem = "imagens/".$foto.$id.$type; //Upload da imagem para o caminho move_uploaded_file($imagem['tmp_name'], $caminhoImagem); //Script de UPDATE $sql = "UPDATE usuarios SET imagem='$caminhoImagem' WHERE id=$id"; $res = mysqli_query($con, $sql); if($res==1){ echo "<script>"; echo "alert('Foto alterada com sucesso');"; echo "window.location = 'index.php?pasta=perfil&acao=listar';"; echo "</script>"; }else{ echo "Erro ao alterar"; } } $sql = "SELECT imagem FROM usuarios WHERE id=$id"; $res = mysqli_query($con, $sql); $dados = mysqli_fetch_array($res); ?>  
×

Informação importante

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