Mailinglisten-Archive |
Ich habe mal auf die Schnelle eines unserer Skripte komprimiert, siehe
unten.
Eigentlich nichts Spektakuläres. Eine Query mit über 3000 Datensätzen wird
mit while und mysql_fetch_array durch ein "HTML Template" gejagt.
Die Query dauert laut MySQL 0,22 Sekunden,
ohne den ganzen HTML Schnickschnack und z.B. nur mit Ausgabe eines einzelnen
Feldes aus dem Result, braucht auch der Browser nicht einmal eine Sekunde.
Aber so wie unten mit dem HTML, braucht "mein Browser", also Server während
des Parsens, 6 Sekunden und mehr.
Ist das eine normale Durchschnittszeit? Das kann dich nicht sein?! Die CPU
Belastung beträgt bis zu mehr als 30% und dauert lange an, und das nur bei
einem Skript!
Bei zweien ist der Server auf seinen Knien.
Da stimmt doch was nicht?!
Könnte ein Update von php4 auf 5 etwas bringen?!
Apache/2.0.50 PHP/4.3.10
Das Skript:
------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
echo time();
ob_start();
$q = "SELECT SQL_CALC_FOUND_ROWS contacts.*, address_book.* FROM contacts,
address_book WHERE contacts.address_book_id = address_book.address_book_id
AND contacts.groups_id = 1 ORDER BY contacts.contacts_name ASC LIMIT 0,
3071";
$res = mysql_query($q);
?>
<table width="100%" cellpadding="2" cellspacing="0" border="0">
<?php
while($contacts_row=mysql_fetch_array($res))
{
?>
<tr>
<td valign="top"><?php echo $contacts_row['entry_street_address']; ?><br
/>
<?php echo $contacts_row['entry_postcode']; ?> <?php echo
$contacts_row['entry_city']; ?><br />
Tel.: <?php echo $contacts_row['contacts_telephone']; ?><br />
Fax: <?php echo $contacts_row['contacts_fax']; ?><br />
</td>
</tr>
<?php
}
ob_flush();
?>
</table>
<?php
echo "<hr>" . $q . "<hr>" . time() . "s";
?>
php::bar PHP Wiki - Listenarchive