nutze ENUM vor VARCHAR oder CHAR
10.12.2009
22:20
Die MySQL Typen CHAR und VARCHAR werden genutzt um kleine Texte bzw. Wörter in der Datenbank zu speichern. Um dies effizient zu machen, sollte man sehen ob man nich an deren Stelle ein ENUM nutzen kann.
So kann z.B. ein Kennzeichen für den Status vorhanden sein mit den Werten 'angelegt', 'freigesch » mehr lesen
So kann z.B. ein Kennzeichen für den Status vorhanden sein mit den Werten 'angelegt', 'freigesch » mehr lesen
analyse die Tabellen
09.12.2009
17:28
Mit der Prozedur ANALYSE() gibt MySQL die Möglichkeit die Tabelle zu untersuchen, und macht dabei Vorschläge für optimierte Tabellenspalten.
Wenn zum Beispiel eine Spalte als CHAR definiert ist, und sie nur ein paar unterschiedliche Werte enthält, ist es besser die Spalte als ENUM zu definieren.
B » mehr lesen
Wenn zum Beispiel eine Spalte als CHAR definiert ist, und sie nur ein paar unterschiedliche Werte enthält, ist es besser die Spalte als ENUM zu definieren.
B » mehr lesen
benutze wenn möglich NOT NULL
08.12.2009
13:02
Der Wert NOT NULL ist in den meisten Fällen nicht nötig. Meist macht es keinen Unterscheide, ob ein einer Spalte "0" oder "NULL" bzw. ein Leerstring oder "NULL" enthalten ist.
Beim Speichern innerhalb von MySQL gibt es aber einen Unterschied im Platzbedarf. Eine Spalte, welche nicht NOT NULL defini » mehr lesen
Beim Speichern innerhalb von MySQL gibt es aber einen Unterschied im Platzbedarf. Eine Spalte, welche nicht NOT NULL defini » mehr lesen
benutze gleiche Typen bei JOINS
07.12.2009
08:40
Wenn man einen JOIN ausführt, muss MySQL ja logischer Weise die Daten in den Spalten miteinander vergleichen. Die Spalten über welche der JOIN abgearbeitet wird, sollten dabei vom selben Type sein.
Wenn
» mehr lesen
Code
1
2
3
2
3
SELECT bar.foo
FROM bar
INNER JOIN bar2 ON ( bar.spalte = bar2.spalte )indiziere Spalten zum Suchen
06.12.2009
15:41
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
Dies gilt nicht nur für Vergleiche mit dem gesamten Feldinhalt, son » mehr lesen
Untersuche die Abfragen mit EXPLAIN
05.12.2009
09:24
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 *
04.12.2009
09:08
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
03.12.2009
07:49
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.
» mehr lesen
PHP Code
1
2
2
// die gesamte Tabelle wird gescannt
$result =sortiere nicht nach RAND() in MySQL
02.12.2009
00:02
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
mein Adventskalender - MySQL optimieren
01.12.2009
00:01
Hallo,
hier entsteht jetzt mein ganz persönlicher Adventskalender. Es erfolgt jetzt jeden Tag eine Information, wie man Abfragen einer MySQL Datenbank beschleunigen kann.
hier entsteht jetzt mein ganz persönlicher Adventskalender. Es erfolgt jetzt jeden Tag eine Information, wie man Abfragen einer MySQL Datenbank beschleunigen kann.