Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal tudo vem?
Estou com um problema tenho uma tabela com mais de 300 mil clientes e outra que é tem os consumo relacionado a cada cliente.
A muita lentidão "trava as vezes" na minha consulta quando uso o JOIN entres as duas tabelas na consulta. Coisa que não acontece quando realizado em apenas uma das tabelas. PRECISO MUITO RESOLVER ESSE PROBLEMA MEU CHEFE TÁ PUTO JÁ. KKKKKK :mellow:
EX da select : $query_teste_w = "**SELECT * FROM (consumo LEFT JOIN clientes ON consumo.uc_cod=clientes.uc) {$where}**";
CÓDIGO COMPLETO:
<?php require_once('Connections/BHJ.php'); ?>
<?php
// Iniciamos o "contador"
list($usec, $sec) = explode(' ', microtime());
$script_start = (float) $sec + (float) $usec;
$filtros = Array();
$mes = (string)$_POST['mes'];
$cliente = (string)$_POST['cliente'];
$irregularidade = (float)$_POST['irregularidade'];
$cod_setor = $_POST['cod_setor'];
$situacao = (string)$_POST['situacao'];
$classe = (string)$_POST['classe'];
$subclasse = (string)$_POST['subclasse'];
$fabricante = (string)$_POST['fabricante'];
$nr_medido = (string)$_POST['nr_medido'];
$uc = $_POST['uc'];
if(!empty($mes)){
$filtros[] = "mes = '{$mes}'";
} $filtros[] = "cod_setor = {$cod_setor}";
} $filtros[] = "irregularidade = {$irregularidade}";
} $filtros[] = "cliente = {$cliente}";
} $filtros[] = "situacao = {$situacao}";
} $filtros[] = "classe = {$classe}";
} $filtros[] = "subclasse = {$subclasse}";
} $filtros[] = "fabricante = {$fabricante}";
} $filtros[] = "forma_faturamento = {$forma_faturamento}";
} $filtros[] = "nr_medido = {$nr_medido}";
} $filtros[] = "uc IN ({$uc})";
}
if(count($filtros)){
$where = "WHERE " . join(" AND ", $filtros);
}else{
$where = "";
}
mysql_select_db($database_BHJ, $BHJ);
$query_teste_w = "SELECT * FROM (consumo LEFT JOIN clientes ON consumo.uc_cod=clientes.uc) {$where}";
$teste_w = mysql_query($query_teste_w, $BHJ) or die(mysql_error());
$row_teste_w = mysql_fetch_assoc($teste_w);
$totalRows_teste_w = mysql_num_rows($teste_w);
// Terminamos o "contador" e exibimos
list($usec, $sec) = explode(' ', microtime());
$script_end = (float) $sec + (float) $usec;
$elapsed_time = round($script_end - $script_start, 5);
?>
<?php
$total_reg = "10"; // número de registros por página
?>
<?php
$pagina=$_GET['pagina'];
if (!$pagina) {
$pc = "1";
} else {
$pc = $pagina;
}
?>
<?php
$inicio = $pc - 1;
$inicio = $inicio * $total_reg;
?>
<?php
$limite = mysql_query("$query_teste_w LIMIT $inicio,$total_reg");
$todos = mysql_query("$query_teste_w");
$tr = mysql_num_rows($todos); // verifica o número total de registros
$tp = $tr / $total_reg; // verifica o número total de páginas
// vamos criar a visualização
while ($dados = mysql_fetch_array($limite)) {
$nome = $dados["nome"];
echo "Nome: $nome<br>";
}
// agora vamos criar os botões "Anterior e próximo"
$anterior = $pc -1;
$proximo = $pc +1;
if ($pc>1) {
echo " <a href='?pagina=$anterior'><- Anterior</a> ";
}
echo "|";
if ($pc<$tp) {
echo " <a href='?pagina=$proximo'>Próxima -></a>";
}
?><html xmlns="[http://www.w3.org/1999/xhtml">](http://www.w3.org/1999/xhtml)
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
.style1 {color: #FF0000}
-->
</style>
</head>
<body>
<p>TOTAL: <?php echo $totalRows_teste_w ?> </p>
<P>
<?php // Exibimos uma mensagem
echo 'Elapsed time: ', $elapsed_time, ' secs. Memory usage: ', round(((memory_get_peak_usage(true) / 1024) / 1024), 2), 'Mb'; ?><p>
<?php do { ?>
<table width="100%" border="1">
<tr>
<td><?php echo $row_teste_w['regional']; ?></td>
<td><span class="style1"><?php echo $row_teste_w['cod_setor']; ?></span></td>
<td><?php echo $row_teste_w['uc']; ?></td>
<td><?php echo $row_teste_w['complemento']; ?></td>
<td><?php echo $row_teste_w['bairro']; ?></td>
<td><?php echo $row_teste_w['situacao']; ?></td>
<td><?php echo $row_teste_w['data_ligacao']; ?></td>
<td><?php echo $row_teste_w['fabricante']; ?></td>
<td><?php echo $row_teste_w['cod_seguencia']; ?></td>
<td><?php echo $row_teste_w['endereco']; ?></td>
</tr>
</table>
<p>
<?php } while ($row_teste_w = mysql_fetch_assoc($teste_w)); ?>
</body>
</html>
<?php
mysql_free_result($teste_w);
?>Carregando comentários...