traag ? of acceptabel?
Het volgende:
Ik heb een aantal relationeel gekoppelde bestanden. Het hoofdbestand is ± 1650 records, de (zeg maar) sub bestanden bevatten 500, 600 ,10 en 20 records. Op basis een van waarde in het hoofdbestand worden in het php script gegevens uit andere bestanden getoont. Maar het opbouwen van de pagina duurt nu 30 tot 40
seconden.
Mijn vraag: is dat bij deze hoeveelheid records acceptabel?
Het php script bevat tussen de 4 en 7 include's
zoals: include "connect.php"
include "html_header.php"
include "html_footer.php"
Kan ik soms hier beter require gebruiken?
en de data haal ik zo uit de database:
$query = "SELECT * FROM `games` ORDER BY Game_Date DESC";
$sql = mysql_query($query) or die ( mysql_error( ) );
while(
$record = mysql_fetch_object($sql))
{
$Game_ID = $record->Game_ID;
$Game_Played = $record->Game_Played;
en dan
echo"
<tr>$tdtblrow <A HREF='edit_game.php?id=$Game_ID' TARGET=nieuw>
$Game_ID</font></td>
Ik weet niet of dit afdoende info is om een beetje oordeel te kunnen vellen.....maar anders moet ik het hele script poste en dat wil ik jullie niet aan doen.
dus:
SELECT Game_ID,GAME_Played,nogmeer records FROM games
je snapt denk het principe wel.
Succes ermee
Dit is niet alle code, dus ik kan geen inzicht krijgen over de rest van de code.
Zelf werk ik soms ook met databases van 5000 tot 10000 records met daaraan weer relaties, maar ik zorg ervoor dat het ophalen en het tonen van die gegevens nooit langer duurt dan 2 seconden.
Als het laden naar mijn mening te lang duurt, dan zet ik timers in de pagina, zodat ik specifiek weet waar hij zolang voor nodig heeft.
Probeer tevens met SELECT de specifieke velden aan te geven. Nu haalt ie ALLE velden op.
Gewijzigd op 19/09/2005 15:58:00 door Barman V
alvast bedankt
Dat SELECT field, field ipv SELECT * maakt niet zoveel uit. In dit script gebruik ik ALLE 16 velden uit de database. ik heb hem terug weten te bregen tot 12 seconden
komt het dan door de methode van fetch?
moet ik anders ergens
mysql_fetch_Row
of
mysql_fetch_assoc
gebruiken in plaats van:
$record = mysql_fetch_object
nu doe ik:
while( $record = mysql_fetch_object($sql))
{ $Game_ID = $record->Game_ID;
$Home_Team_ID =$record->Home_Team_ID;
$Home_Team = mysql_fetch_object(mysql_query(\"SELECT * FROM teams WHERE Team_ID=\'$Home_Team_ID\'\") );
en dan echo met:
$tdtblrow $Game_ID</td>
$tdtblrow $Home_Team->TeamName</font></td>
en dat www.php-accelerator.co.uk werkt alleen met linux, toch ?? en ik zit met een Wamp
ondertussen ben ik er achter dat de hele file 1,3 mb aan data is die over gepompt moet worden
trouwens, mysql_fetch_assoc() is veel sneller dan mysql_fetch_object().
Dan moet je ze dus benaderen:
$array = mysql_fetch_assoc($sql_result);
$array['veld'] = waarde
ipv
$array->veld = waarde
Zou ik iets meer met (meer) indexen o.i.d. moet gaan werken om de bestanden te linken :-?
straks ga ik de zooi opsplitten in paginas van max 40 records en dan moet het sneller gaan. ik ga nu tsten met een limit=40 of zo eens
moet ik alleen en script vinden met next previous oom in mijn script te plakken.... even op phphulp kijken ;-)