André Laugks: MySQL Performance-Problem bei Abfrage v. > 30 Feldern

Beitrag lesen

Hallo!

Du hast sehr viele VARCHAR-Spalten, was natürlich nicht gerade performant ist.

Ja, leider - kann man halt nicht ändern...

Versuche so viel INT-Spalten wie möglich zu verwenden. Aber wie ich sehe, ist das bei Dir nicht so möglich.

Ich dachte NULL wäre nur etwas Datenbank-Internes und MySQL gibt nichts, also '', zurück wenn NULL?

NULL ist nicht 0 oder '', sondern nichts... gar nichts. Du kannst ja nach NULL suchen: ... WHERE spalte IS NULL; ... WHERE spalte IS NOT NULL;

Leider gibt es auch Postleitzahlen die mit 0 beginnen, Dresden hat beispielsweise 01129, da wird bei INT als Feldtyp ja dann die 0 vorne abgeschnitten, oder gibt es da eine andere Lösung für?

Kannst Du kannst aber ZEROFILL verwenden.

plz INT(5) NULL ZEROFILE;

Nun wird von rechts nach links alles mit 0 aufgefüllt.

01129
00129
50666

Du kannst das aber auch mit der Applikation lösen. Mit PHP könnte das so aussehen:

$plz = "1234";
$format_plz = sprintf("%05d", $plz);

$format_plz --> 0124

MfG, André Laugks