Werbung
indiziere Spalten zum Suchen
Spalten, welche in Where Bedingungen genutzt werden sollten mit einem Indix versehen werden. Hat eine Spalte ein Index kann MySQL beim suchen auf das Scannen der Spalte verzichten und benutzt stattdessen den weit schnelleren Index.
Dies gilt nicht nur für Vergleiche mit dem gesamten Feldinhalt, son
» mehr lesen
Untersuche die Abfragen mit EXPLAIN
Mit EXPLAIN zeigt MySQL genau an, wie es eine Abfrage ausführt. Dabei werden die genutzten wie auch nicht genutzten Indizes angezeigt. Des Weiteren gibt EXPLAIN Auskunft darüber wie die Tabellen gescannt und sortiert werden. Alles in allem eine gute Möglichkeit Flaschenhälse und Strukturfehler zu fi
» mehr lesen
vermeide SELECT *
Das Abfragen sämtlicher Spalten in einer SELECT-Anweisung ist in 99% aller Fälle überflüssig. Meist benötigt man nur bestimmte Spalten, dann sollte man auch nur diese Spalten abfragen. Natürlich ist es als Programmierer einfacher einfach ein "SELECT *" zu nutzen, als jeder benötigte Spalte einzeln z
» mehr lesen
LIMIT 1 für einem einzelnen Datensatz
Wenn man einen einzelnen Datensatz abfragen will, ist es von Vorteil die Abfrage mit "LIMIT 1" zu begrenzen. Dadurch wird dem MySQL Server mitgeteilt, das er nach dem Finden des ersten Datensatzes mit dem Scannen der Tabelle(n) aufhören kann.
2
// die gesamte Tabelle wird gescannt
$result =sortiere nicht nach RAND() in MySQL
Wenn man einen beliebigen Datensatz aus einer Tabelle erhalten möchte, greifen viele zur schönen Funktion RAND() und begrenzen das Ergebnis mit LIMIT 1. Natürlich funktioniert dies, ist aber bei größeren Tabellen extrem ineffizient. MySQL kann in diesem Falle für das Sortieren keinen Index nutzen un
» mehr lesen