PHP Conference - Teil 3 (Donnerstag)

Für mich ein MySQL Tag. Ich habe mir 2 Vorträge angeschaut und beide beschäftigten sich mit Datenbanken. Im ersten „Performance Tuning MySQL“ wurden verschiedene Methoden erläutert wie ein Datenbank-Server entlastet werden kann. In 3 Teilbereichen wurde Vor- und Nachteile von Performance-Tuning durch mehr Hardware, Optimierung der Konfiguration und dem Hinzufügen von Indizes bzw. dem Umschreiben der Queries erklärt. Auf Seiten der Hardware ist der Flaschenhals in den meisten Fällen die Festplatte sodass es helfen kann Arbeitsspeicher aufzurüsten um die Schreib- und Lesezugriffe auf die Festplatte zu reduzieren. Hier kann man auch durch das ändern der MySQL-Serverkonfiguration noch etwas Performance gewinnen, indem man verschiedene Buffer vergrößert.

Um Queries zu optimieren sollten man das slow_query_log aktivieren um langsame Queries zu finden. Diese kann man dann mit EXPLAIN analysieren und optimieren. Eine mir bis dahin unbekannte Regel ist beispielsweise das bei Indizes über mehrere Spalten, die Spalte nach „Eindeutigkeit“ von links nach rechts sortiert werden sollten. (Die Spalte mit der „größten Eindeutigkeit“ steht links. Der zweite Datenbank-Vortrag „Security from the database perspective“ beschäftigte sich dann mit Angriffsmöglichkeiten auf Datenbankserver bzw. damit, wie man diese verhindern kann. Erläutert wurde z.B. das korrekte Escapen von SQL-Queries um Injection-Attaken zu unterbinden. Interessanter waren allerdings die weniger bekannten Angriffe und Probleme. Hierzu zählen: Denial of Service (Attacken wie etwa das massenhafte Absetzen von Deep-Search-Queries) Exposing Port 3306 Connection pool issues (mysql_pconnect nicht benutzen!) So habe ich auch am dritten Tag wieder eine Menge dazugelernt...