galuba dot net

Informationen zu Wordpress, jQuery, Web 2.0, Apple u.v.m.

Die häufigsten MySQL Fehler

| Keine Kommentare

Als PHP-Programmierer kommt es sehr häufig vor das man auch Datenbank-Abfragen aus MySQL in seine Anwendungen implementiert. Dabei werden häufig Fehler gemacht, die die Abfrage unnötig verlangsamen und/oder sogar ganz verhindern.

Vermeide es den * in deinen Abfragen zu verwenden

Verwende niemals den * um alle Felder aus der Datenbank abzufragen. In den meisten Fällen wird der komplette Inhalt nicht in einer Abfrage benötigt. Falls doch ist es ratsamer die benötigten Felder aufzulisten, das hilft auch bei einer eventuellen Fehlersuche.

Schütze deine Abfragen gegen SQL-Injections

Vertraue niemals einer Benutzer-Eingabe, daher solltest du alle Abfragen für die eine Eingabe eines Users benötigt wird gegen SQL-Injections schützen. Was SQL-Injections sind wird bei Burn a church sehr gut erklärt.

Verwende den richtigen MySQL-Zeichensatz

Ihr solltet den für die Anwendung richtigen MySQL-Zeichensatzes auswählen, um möglichen Konvertierungsproblemen vorzubeugen. Ich nutze für die meisten meiner Applikationen den UTF-8 Zeichensatz, das ist alleine schon aus Gründen der Internationalisierung ratsam.

Optimiere deine Abfragen

Mit Hilfe von EXPLAIN  erhaltet ihr Informationen über eure MySQL-Abfragen. Anhand dieser Informationen solltet ihr eure SELECT-Anweisung, wenn nötig, optimieren.

Verwende InnoDB als Datenbank-Engine

Bei den meisten MySQL-Datenbanken ist MyISAM als Standard-Engine ausgewählt. Es ist aber nicht ratsam diese schon ältere Engine zu benutzen. Wer kann sollte auf die Datenbank-Engine auf InnoDB umstellen.

Insbesondere beim einfügen oder aktualisieren von Daten in der Datenbank gibt es Unterschiede, MyISAM sperrt die ganze Tabelle während des Vorgangs, InnoDB hingegen sperrt nur den betreffenden Datensatz für die Zeit des Querys.

Weitere Informationen dazu findet ihr hier (Referentielle Integrität), hier (Fremdschlüssel) und hier (Transaktionen).

Backups erstellen

Ihr solltet auf jeden Fall regelmäßig eure Datenbank sichern und das nicht nur auf dem Speicherplatz eures Webhosters. Falls ihr eure Backups nur bei eurem Hoster liegen habt, kann es auch ja passieren das ihr aus irgendwelchen Gründen nicht mehr an diese Daten herankommt. Das kann zum Beispiel passieren wenn euer Anbieter Insolvenz geht, oder das Rechenzentrum abbrennt und so weiter. Natürlich sollte auch der Hoster auch weitere Sicherungen haben, aber da möchte ich nicht drauf vertrauen.

Ich lade die automatisch erstellten Backups wöchentlich auf meine externe Festplatte zu Hause runter. Dort habe ich immer die vier aktuellsten Versionen liegen, mein Backup-Archiv geht also vier Wochen zurück.

MySQL-LogoNutze die Stärken von MySQL

In MySQL gibt es eine Vielzahl von Funktionen die auch mit PHP realisiert werden können, hier solltet ihr aber aus Performance-Gründen die MySQL-Funktionen nutzen. Ein Beispiel hierzu wären die COUNT()-, AVG()- oder SUM()-Funktionen in MySQL, hier könnte das gleiche Ergebnis mittels Schleifen und Zählvariablen auch mit PHP errechnet werden. Dies würde die Abfrage und den Speicher nur unnötig belasten.

(via)

Autor: René Galuba

Hallo, ich heiße René und verfasse hier meine aktuellen Trainingsberichte und Neuigkeiten aus der Apple-Welt. Ich bin Programmierer und schreibe daher auch gerne über Wordpress, PHP, jQuery und weitere Web 2.0 Themen. Auf meinen Facebook, Google+ und Twitter Profilen erfahrt ihr noch mehr über mich.

Hinterlasse eine Antwort

Pflichtfelder sind mit * markiert.

*