Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá
Tenho esse Select que faz a busca de algumas informações no bando para ver se elas existem. Mais a aplicação está bastante lenta, teria alguma forma de otimizar e fazer com que o Mysql busque as informações mais rápido?
<?php
$ip = file_get_contents('https://api.ipify.org');
date_default_timezone_set('America/Sao_Paulo');
$data_atual = date("Y-m-d");
if(!$conect=mysqli_connect('localhost','root','xxx','xxx')) die ('erro ao conectar');
#Recolhendo os dados do formulário
$dado1 =trim($data_atual);
$dado2 = trim($ip);
$sql = $conect->query("SELECT * FROM fornecedores_rating WHERE ip='".$dado2."' and id_festa='".$produto['auxiliar_evento_usuario']."'and id_usuario='".$idUsuario."'");
if(mysqli_num_rows($sql) > 0){
echo" <div style=\"clear:both;\"></div><i style=\"font-size:18px;\" class=\"fa fa-star-half-o\" aria-hidden=\"true\"></i> <strong>Fornecedores Avaliados</strong>";
} else {
echo"
<div style=\"clear:both;\"></div><a href=\"avaliar-fornecedores.php?id_festa=".$produto['auxiliar_evento_usuario']." \"><i style=\"font-size:18px;\" class=\"fa fa-star-half-o\" aria-hidden=\"true\"></i> <strong>Avaliar Fornecedores</strong></a>";
}
?>bem poucos só 6
>
7 minutos atrás, Wagner M.M disse:
bem poucos só 6
Você efetua consultas em outras partes do site? Também está lento?
em outras partes nao, só nessa mesmo, por isso eu estranhei
>
2 minutos atrás, Wagner M.M disse:
em outras partes nao, só nessa mesmo, por isso eu estranhei
Poderia colar o código de outra consulta aqui? Para que eu possa lhe oferecer uma solução concreta :)
<?php
$servername = "localhost";
$username = "root";
$password = "20054145";
$dbname = "portalcelebrando";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
$conn->set_charset('utf8');if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = "SELECT * FROM banner";
$result = $conn->query($sql);
if ($result->num_rows > 0) {$i_evento++;
echo'<li><img src="'.$url_base.'/admin/uploads/'.$row['banner'].'" class="wrapper_img"></li>';
}
} else {
echo "Nenhum Banner Cadastrado";
}
?>
Se eu deixo só esse código vai rápido, e se acrescento aquele anterior, fica lentoTalvez esteja ficando lento por causa da linha (não tenho certeza)
>
54 minutos atrás, Wagner M.M disse:
if(!$conect=mysqli_connect('localhost','root','xxx','xxx')) die ('erro ao conectar');
Você não precisa em toda aplicação estar fazendo isso, você pode criar uma classe:
<?php
class Conexao {
private $con;
function __construct() {
$this->conectar("localhost", "root", "1234", "dbname");
}
function conectar($host, $user, $password, $dbname) {
try{
$this->setCon(new mysqli(
$host,
$user,
$password,
$dbname
));
} catch (Exception $ex) {
echo $ex->getMessage();
}
function setCon($con) {
$this->con = $con;
}
function getCon() {
return $this->con;
}
}
Você pode comparar uma consulta com a outra, na segunda você não está fazendo conexão novamente dentro de uma condição e está usando um método para verificar se está conectando com sucesso. Diferente da primeira, que você está conectando novamente para verificar na condição se está conectando... Pode ser, como pode não ser.
Mas se o segundo não está demorando, aconselho usar o mesmo modelo do segundo.Não tem porque sua query está lenta, não tem nada de mais aí.
Seu problema pode estar aqui:
$ip = file_get_contents('https://api.ipify.org');
Se o site demora a responder, então sua consulta que depende do Ip também irá demorar.Tenta 'Mockar/HardCode' o Ip e verifica se o problema de velocidade persiste.
Outra maneira de 'debugar' a velocidade.
é exibir a Consulta SQL e efetuar manualmente ela em um Mysq-cli (phpMyAdmin, command-cli, adminer, etc etc)
Caso o problema seja realmente isso:
$ip = file_get_contents('https://api.ipify.org');
Uma alternativa:
[http://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php](http://stackoverflow.com/questions/3003145/how-to-get-the-client-ip-address-in-php)
Boa tarde,
aproximadamente quantos resultados são recebidos por essa query?