Udtræk fra database gør server MEGET langsom
Hej med jer.Jeg har et mystisk problemet på min server.
Jeg udtrækker noget fra min database hvor jeg viser nogle billeder med et link.
Jeg gør det samme igen bagefter og når det er aktiv på min side, så går min server i total overload. Ved ikke om det er dårlig kode jeg har lavet eller hvad der er galt. Den er pludselig begyndt på det og har aldrig gjort det før.
Det er en ret stor server jeg har!.
Har prøver på flere andre sider at smide koden ind og det er det samme, så noget må være helt galt.
Jeg har først min almindelige udtryk og derefter den kode som gør siden meget langsom. Begge dele er næsten ens. Den første viser de nyeste billeder og den sidste viser random billeder. Det er ikke pga. billedestørrelsen for det har jeg lavet et fix på.
Håber der er nogen der kan se hvad jeg gør galt...
Her er min første kode som viser 15 forskellige billeder og links til dem i stor format:
<?php
$host = "x";
$user = "x";
$pass = "x";
$db = "x";
$connection = mysql_connect($host,$user,$pass);
mysql_select_db("$db");
// hent start værdien
$start = (isset($_GET['start'])) ? $_GET['start'] : 0;
$limit = 15; // 15 resultater pr. side
// lav næste forrige links
$next = "<a href='sjovebilleder.php?start=".($start+$limit)."'>Næste side</a>";
if ($start != 0) {
$prev = "<a href='sjovebilleder.php?start=".($start-$limit)."'>Forrige side</a> - ";
} else {
$prev = '';
}
// hent data
$result = mysql_query("SELECT * From comment WHERE visnyhed = 3 AND billedekategori <> '' AND billedekategori <> 'fraekke' ORDER BY tid DESC LIMIT ".$start.", ".$limit);
// Tæller start
$count = 0;
echo '<table height="180" valign="top" border="0" width="100%">';
echo '<tr valign="top">';
// Loop resultater fra databasen
while($row=mysql_fetch_assoc($result)) {
// Indhold der skal i tabel cellerne
$content = $_row[link].'<a href="/hyggepic.php?videoid='.$row[Id].'"><img border="1" src="/phpthumb/phpThumb.php?src=/u/myimages/'.$row[pic].'" height="130" width="190"><br>'.$row[beskrivelse].'</a>';
// Vi har vist under 6 rækker
if($count < 3) {
echo '<td valign="top" align="center" height="180"><font size="2"></u>'.$content.'</td>';
$count++; // +1 til tæller
// Dette er den 6. gennemgang der laver rækkeskift
} else {
echo '</tr><tr><td align="center" valign="top"><font size="2"></u>'.$content.'</td>';
$count = 1; // Nulstiller tæller - vi har allerede vist én række, derfor 1
}
}
echo '</tr>';
echo '</table>';
?>
</div>
<div align="center"><font size="2" face="Verdana"><br>
<?
echo $prev." ".$next;
mysql_free_result($result);
?></p>
<br>
-------------------------- SLUT KODE -----------------
Og så den kode som viser det samme næsten, bare med random billeder i stedet for de nyeste:
Men koden gør at siden lader total overload og bliver sindsyg langsom at komme ind på og man kan faktisk overhovedet ikke se noget, medmindre man venter længe pga. den overload der er på serveren.
<?php
// Forespørgsel til databasen her
$host = "x";
$user = "x";
$pass = "x";
$db = "x";
$connection = mysql_connect($host,$user,$pass);
mysql_select_db("$db");
// hent start værdien
$start = (isset($_GET['start'])) ? $_GET['start'] : 0;
$limit = 15; // 15 resultater pr. side
// lav næste forrige links
$next = "<a href='seneste.php?start=".($start+$limit)."'>Næste side</a>";
if ($start != 0) {
$prev = "<a href='seneste.php?start=".($start-$limit)."'>Forrige side</a> - ";
} else {
$prev = '';
}
$query="SELECT * From comment where visnyhed < 3 AND billedekategori <> ba AND spil < '3' ORDER BY RAND() LIMIT 12";
$result=mysql_query($query) or die(mysql_error());
// Tæller start
$count = 0;
echo '<table border="0" width="100%">';
echo '<tr>';
// Loop resultater fra databasen
while($row=mysql_fetch_assoc($result)) {
// Indhold der skal i tabel cellerne
$content = $_row[link].'<a href="/flashplayer/hyggeplayer.php?videoid='.$row[Id].'"><img border="1" src="/phpthumb/phpThumb.php?src=/u/movie/'.$row[pic].'" height="80" width="110"></a>';
// Vi har vist under 6 rækker
if($count < 3) {
echo '<td>'.$content.'</td>';
$count++; // +1 til tæller
// Dette er den 6. gennemgang der laver rækkeskift
} else {
echo '</tr><tr><td>'.$content.'<br></td>';
$count = 1; // Nulstiller tæller - vi har allerede vist én række, derfor 1
}
}
echo '</tr>';
echo '</table>';
mysql_free_result($result);
?>
Håber der er nogle kloge gutter som kan hjælpe mig med at finde en løsning på mit problem. :-)