30. Mai, 2007
Heute möchte ich mal wieder das beliebte Thema PHP-Ausgaben behandeln. Genauer gesagt: den Performance-Unterschied zwischen PHP- und HTML-Ausgaben. Man kann ja die gesamte Logik in PHP schreiben und außerhalb eines PHP-Blockes dann einfach per HTML die Ausgabe schreiben, doch ist das schneller als direkt von PHP die Ausgabe ausführen zu lassen? Weiterlesen >
Schlagwörter:
ausgabe,
echo,
html,
PHP
29. Mai, 2007
Neben dem Selektieren und dem Aktualisieren ist das Einfügen neuer Datensätze in eine Tabelle eine sehr häufig durchgeführte Operation. Ein sehr häufiger Anwendungsfall ist es, dass nicht nur ein paar einzelne Neueinträge hinzugefügt werden, sondern gleich ein ganzer Rutsch neuer Datensätze hinzugefügt werden sollen. Dieser Beitrag soll einige Tipps geben, wie man neue Datensätze möglichst schnell einfügt und somit die Sperrzeiten der Tabellen möglichst gering hält, denn beispielsweise MyISAM unterstützt nur Table-Locks, wodurch die gesamte Tabelle für den Zugriff gesperrt ist. Fügt man dann mal nebenbei einige Tausend Datensätze hinzu, kann die Tabelle für einen recht langen Zeitraum gesperrt sein, denn Inserts und Updates sind in MySQL stets höher priorisiert als Selects (außer man verzögert das Einfügen explizit mit DELAYED oder LOW_PRIORITY). Es sollte demzufolge das Ziel sein das Einfügen so schnell wie möglich fertig zu bekommen, damit die Datenbank sich wieder mit dem Selektieren für Zwecke der eigentlichen Anwendung beschäftigen kann. Weiterlesen >
Schlagwörter:
datenbank,
insert,
MySQL,
schleife,
standardwert
25. Mai, 2007
Oft steht man bei der Wahl des Datentyps für eine Tabellenspalte vor der Frage, ob man die statische CHAR- oder die dynamische VARCHAR-Version nutzt. Im Internet findet man auch unterschiedliche Meinungen dazu (vgl. Zach Nichters Beitrag und die offizielle Stellungnahme in der MySQL-Dokumentation, deshalb wollte ich mir selbst ein Urteil dazu bilden. Weiterlesen >
Schlagwörter:
datenbank,
datentypen,
dynamisch,
MySQL,
statisch
23. Mai, 2007
Im Web liest man recht oft, dass PHP-Ausgaben, die in Hochkommata eingeschlossen werden, etwas schneller gehen als die Variante in Gänsefüßchen. Eigentlich ist die Gänsefüßchen-Variante aus meiner Sicht "richtiger" von der Syntax her, da Strings in vielen Programmiersprachen in eben diesen Zeichen eingeschlossen werden. Dort sind Singlequotes (Hochkommata) für den Datentyp char (ein einzelnes Zeichen) zuständig. Aber nicht zuletzt auf Wunsch der in den Kommentaren zur Einbettung oder Konkatenierung von Variablen in Strings möchte ich diesem Phänomen einen eigenen Beitrag widmen. Weiterlesen >
Schlagwörter:
ausgabe,
echo,
PHP
22. Mai, 2007
In PHP kann man Variablen auf zwei unterschiedliche Arten in einen String einbauen.
$zeit = time();
// Variable im String
echo "Der aktuelle UNIX-Timestamp ist $zeit.";
// Variable konkateniert
echo "Der aktuelle UNIX-Timestamp ist ".$zeit.".";
Ich finde die zweite Variante sauberer, da sie die Variablen eindeutig vom String trennt, trotzdem möchte ich aber – nicht zuletzt angestoßen durch soulrebels Beitrag im Forum mal untersuchen, inwiefern sich beide Arten in der Performance unterscheiden. Weiterlesen >
Schlagwörter:
ausgabe,
PHP,
regex,
variablen
21. Mai, 2007
PHP als Modul des Apache nutzt – wie andere Scriptsprachen auch (beispielsweise Perl oder ASP) – das CGI, um Anfragen an einen Webserver zu senden und das Ergebnis an den Client zurück zu schicken. Für jede Anfrage muss dabei ein neuer Prozess angelegt werden, der nach der abgeschlossenen Bearbeitung des Scripts wieder beendet wird. Das Problem dabei ist, dass das Starten und Initialisieren sehr viel länger dauert als das eigentliche Ausführen des Scripts – es entsteht also ein großer Overhead. Hinzu kommt noch, dass für jedes Script ein eigener Interpreter in den Speicher geladen werden muss – dieser ist also mitunter mehrmals im Speicher präsent. Weiterlesen >
Schlagwörter:
cache,
interpreter,
Server,
speicher,
threads