Einzelnen Beitrag anzeigen

Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#3

Re: [MySQL]existenz eines datensatzes prüfen: was ist schnel

  Alt 26. Mär 2006, 17:07
Zitat von Chewie:
Ich bin nicht sicher, wann LIMIT ausgeführt wird. Bestenfalls wird nach dem ersten Vorkommen aufgehört zu suchen, dann ist die Variante mit LIMIT die schnellste. Schlimmestenfalls werden alle gefunden und dann erst LIMIT ausgeführt. Im Mysql-Manual sollte aber drin stehen, in welcher Reihenfolge die einzelnen Klauseln ausgeführt werden.
Leider werden die Limits erst nach dem Selektieren aller zutreffenden Datensaetze angewandt. Das heisst, wenn 2000 Datensaetze auf deine Bedingung zutreffen, dann werden die erstmal alle rausgeholt. Anschliessend wird alles, was du nicht brauchst, weggeworfen. Kann sein dass sich das geaendert hat/noch aendert; in mySQL4 ist es aber definitiv noch so.

Aber auch das count(*) ist nicht optimal. Du solltest count(<idfeld>) verwenden; dies spart zeit.

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat