Archiv für Mai, 2007

IPC 2012 Spring Edition

PHP Performance Forum eröffnet

Heute gibts mal keinen neuen Tipp, wie man die Performance der eigenen Scripte, Einstellungen oder Abfragen beschleunigen kann. Dafür aber eine tolle Möglichkeit über das Thema Performance-Optimierung zu diskutieren.
Wer Interesse hat, sich mit Gleichgesinnten über die Optimierung von PHP, Servern und Datenbanken zu unterhalten, sollte mal in das PHP Performance Forum schauen. Hoffe, dass damit eine Plattform zum Diskutieren und Kommentieren sowie Vorschlagen und Kritisieren geschaffen ist. Viel Spaß damit!

Schlagwörter: , , ,

Langsame MySQL-Statements finden und analysieren

Auf großen Webseiten bemerkt man als Webmaster oft gar nicht, dass Performance-Probleme auftreten, weil man nicht ständig alle Scripts aufruft und das wohlmöglich noch mit allen möglichen Eingabeparametern. Das wurde am Anfang mal gemacht und dann für performant befunden. Mit der Größe der Datenbank wächst allerdings oft auch der Aufwand für Joins und Ähnliches, deshalb können diese für performant gehaltenen Abfragen mit der Zeit echte Bremsen werden. Doch wie kann man ohne viel Aufwand trotzdem bemerken, ob irgendwelche Queries langsam sind? Weiterlesen >

Schlagwörter: , ,

Zufälligen Datensatz auswählen

Manchmal möchte man einen oder mehrere Datensätze einer Tabelle zufällig auswählen. Bei normalen Sortierungen kann man einen Index zur Bschleunigung setzen, aber bei RAND() funktioniert das nicht. Das kann beispielsweise sein, wenn viele Artikel zur Wahl stehen und allen mal die Chance gegeben werden soll auf der Startseite zu erscheinen. Also können wir ja einfach folgende Abfrage ausführen:

SELECT artikelname 
FROM tabelle 
ORDER BY RAND() 
LIMIT 10;

Das gibt uns 10 Datensätze zurück, die zufällig ausgewählt wurden. Allerdings dauert es eine halbe Ewigkeit, weil für jeden Datensatz der Tabelle eine Zufallszahl erstellt werden muss. Eine Zufallszahl zu erstellen dauert zwar nicht lange – wenn man allerdings mehrere Tausend Einträge in der DB hat, summiert sich das schnell zu einigen Sekunden. Wie können wir das Problem nun umgehen? Weiterlesen >

Schlagwörter: , , ,

Vom Kleinen aufs Große schließen

Jede Operation in MySQL (wie überall anders auch) kostet etwas Zeit. In der Praxis ist die Antwortzeit eines der wichtigsten Kriterien für Software. Um so mehr sollte man schauen, dass man die Abfragen optimiert, wo es nur geht.

Wenn die Tabellen ihrer Datenbank normalisiert sind, benötigt man für eine Abfrage oft Joins. Oft benötigt man allerdings nicht alle Datensätze einer Tabelle sondern schränkt die Ergebnismenge über LIMIT ein. Wie sollte nun vorgegangen werden, damit eine solche Operation möglichst fix geht? Weiterlesen >

Schlagwörter: , , , ,

Prozedurale Programmierung ist tot. Es lebe die prozedurale Programmierung

Seit einiger Zeit ist auch PHP OOP-fähig – und das gar nicht mal schlecht inklusive Vererbung, Kapselung und Polymorphie.
Durch die 3 Grundsätze von OOP drücken sich auch die Vorteile davon aus: Code-Teile sollten einfacher wieder zu verwenden sein und Teams können effektiver gemeinsam programmieren.

Dieser Beitrag soll mal genauer beleuchten, wie hoch die Kosten für dieses Plus an Komfort sind, denn es ist ja offensichtlich, dass sich von Maschinencode über Assembler bis hin zu heutigen Programmiersprachen der Komfort beim Programmieren immer weiter verbessert hat – allerdings auf Kosten der Performance. Ist das bei PHP genauso? Weiterlesen >

Schlagwörter: , , ,

MySQL-Datenbank Tuning

Viele Anwendungen nutzen mittlerweile eine Datenbank. Meist ist sie vorinstalliert und man kümmert sich nicht weiter um die Einstellungen. Doch gerade in den DB-Einstellungen liegen oft massive Performance-Einbußen begründet. Dieser Beitrag soll einige hilfreiche Tipps geben, wie man die Einstellungen einer MySQL-Tabelle optimiert. Weiterlesen >

Schlagwörter: , , , ,