누구든지 다음을 작성하는보다 효율적인 방법을 알고 있습니까? 내로드 시간이 1 분 넘게 걸렸습니다. 이것은 내가 더 긴 코드 세트를 생각해 냈다.PHP 쿼리가 너무 느리게로드됩니다. 속도를 높이는 방법?
$max = $i + 25;
while ($i < $max)
{
$memberno = $memberid;
if($pulledid!=$memberid)
{
$pulledid = mysql_result($result99,$i,"id_member");
$sql_statement = "Select vinyl_fortrade.ImageID,vinyl_fortrade.MemberID from vinyl_fortrade where exists (Select ImageID from vinyl_wanted WHERE MemberID = $memberno AND vinyl_wanted.ImageID = vinyl_fortrade.ImageID) AND vinyl_fortrade.MemberID=$pulledid";
$result=mysql_query($sql_statement)or die(mysql_error());
$num=mysql_numrows($result);
if($num>0)
{
$sql_statement2 = "Select vinyl_wanted.ImageID, vinyl_wanted.MemberID from vinyl_wanted where exists (Select ImageID from vinyl_fortrade WHERE MemberID = $memberno AND vinyl_wanted.ImageID = vinyl_fortrade.ImageID) AND vinyl_wanted.MemberID=$pulledid";
$result2=mysql_query($sql_statement2)or die(mysql_error());
$num2=mysql_numrows($result2);
$membername = mysql_result($result99,$i,"smf_members.member_name");
$userid2 = mysql_result($result99,$i,"smf_members.id_member");
if ($num2 > 0)
{
$lastlogged = mysql_result($result99,$i,"smf_members.last_login");
echo '<td><a href="http://vinylmationconnection.com/forum/index.php?action=pm;sa=send; u='.$userid.'"style="color: #FFF">'.$membername.'</a><br>Last Logged In:<br>';
echo date('Y-m-d', $lastlogged);
echo ':</td>';
echo '<td>';
$n = 0;
$m = 0;
while ($n < $num)
{
$title=mysql_result($result,$n,"vinyl_fortrade.ImageID");
$sql_statementj = "Select * from vinyl_figures WHERE ImageID = '$title'";
$resultj=mysql_query($sql_statementj)or die(mysql_error());
$seriess=mysql_result($resultj,0,"vinyl_figures.Series");
echo '<img src="http://vinylmationconnection.com/images/p'.$seriess.'/'.$title.'.jpg">';
$n++;
if($n%4=="0")
echo "<br>";
}
echo '</td><td>';
while ($m < $num2)
{
$title=mysql_result($result2,$m,"vinyl_wanted.ImageID");
$sql_statementj = "Select Series from vinyl_figures WHERE ImageID = '$title'";
$resultj=mysql_query($sql_statementj)or die(mysql_error());
$seriess=mysql_result($resultj,0,"vinyl_figures.Series");
echo '<img src="http://vinylmationconnection.com/images/p'.$seriess.'/'.$title.'.jpg">';
$m++;
if($m%4=="0")
echo "<br>";
}
echo '</td> </tr>';
}
}
}
$i++;
}
그 코드가 자체 설명인지 여부를 알려주십시오.
일반적으로 성능 문제를 해결하는 방법은 코드에서 프로파일 러를 실행하고 프로파일 러가 코드의 어느 부분이 너무 느린지를 알려주는 것입니다. –
이 코드는 그다지 자명하지 못합니다 ... while while 루프는 main while 루프에서 제거하십시오. ** ONE **만의 질의에 가입하십시오. 그리고 메인 'while'루프가 'for'또는'foreach' 루프 내에서 실행되고 있다고 생각합니다 ... 예수, 이건 시간 소비가 아닌가요? 'while'루프의 쿼리는 ... 죄송합니다. ** ** 느리게 실행되어야합니다. – shadyyx
@ moonwave99 : 포스터를 모욕하는 것은 전적으로 불필요합니다. "끔찍하다"고 말하는 것이 아니라 어떻게 개선 할 수 있는지 설명하십시오. 그렇게 할 수 없다면 아무 말도하지 마세요. –