[GastForen Programmierung/Entwicklung PHP und MySQL

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste

concat macht Probleme ab einer bestimmten Datenmenge

oesi50
  
Beiträge gesamt: 2315

8. Aug 2003, 12:08
Bewertung:

gelesen: 2496

Beitrag als Lesezeichen
das ist ja genau das Problem wenn mehrere Tabellen verknüpft werden.

hier muss mindestens so was stehen:

SELECT tab1.*,tab2.*,tab3.* ...

aber auch das ist nicht so gut.

Die beste Lösung ist immer noch(auch bei anderen DB-Systemen), die Felder IMMER explizit anzugeben und auf den * ganz zu verzichten. Für die Performance ist es auch wichtig, nur die wirklich benötigten Felder abzufordern. Warum soll ich Daten abfragen, die ich nicht benötige. Damit wird
erstens die DB unnötig in Anspruch genommen,
zweitens wird Traffic in Anspruch genummen, und
drittens muss ich mich dann auch noch bei der Weiterverarbeitung um die zu ignorierenden Daten kümmern(Arrays belegen zusätzlichen Speicherplatz, zusätzliche Indizierungen sind notwendig, u.U. ist auch zusätzliche Programmlogik notwendig, und, und, und).

Der kleine Stern wirkt sich also mindestens aus auf:

- CPU Auslastung
- Speicherplatzverbrauch
- Programmgröße
- Datentransfer
- Programmlaufzeit
- Wartbarkeit des Programmes
- Programmierzeit
- Fehlersuchzeit

Das sollten erst mal die wichtigsten Punkte sein.
Bitte niemals den * in irgend einer SELECT Anweisung verwenden!
Die einzige Ausnahme ist zum TESTEN mit irgendwelchen SQL-Tools.
Gerade bei einer Verknüpfung benötigt man NIE alle Felder.
Wer braucht schon 'tab1.id,tab2.id,tab3.id' wenn er z.B. einen EQUI JOIN über die ID macht?
Bei deinem Beispiel ist ja bestimmt noch name und vorname überflüssig, da nur das mit concat neu erzeugte Datenfeld benötigt wird.

Grüße Oesi

(Dieser Beitrag wurde von oesi50 am 8. Aug 2003, 12:24 geändert)
Dieser Beitrag wurde nicht geändert.