flashnfantasy: Queries brechen unter Last ein

Beitrag lesen

Die folgende Queries (und davon habe ich mehrere) arbeiten eigentlich ziemlich schnell.
Durch Indizierung habe ich erreicht, daß von den abgearbeiteten Zeile 90% Treffer sind, zudem sind es ja nicht gerade viele Zeilen...

SELECT m.*, c.header, u.id AS userID FROM mail m, mailContent c, userm u LEFT JOIN crossb b ON (b.userID=1 AND b.userTo=u.id) WHERE m.toID=1 AND (m.status=1 OR m.status=2 OR m.status=4 OR m.status=6) AND u.id=m.fromID AND m.contentId=c.id AND u.memberMode!=9 AND (b.status != 2 OR b.status IS NULL)

table type   possible_keys key     key_len ref         rows Extra
m     ref    fromID,toID   toID    5       const       128  Using where
c     eq_ref PRIMARY       PRIMARY 4       m.contentId 1
u     eq_ref PRIMARY       PRIMARY 4       m.fromID    1    Using where
b     eq_ref PRIMARY       PRIMARY 8       const,u.id  1    Using where
Anzahl Abfragen = 128

Nun ist mein Problem, sobald ziemlich viel Last auf die Datenbank kommt, dauert diese Query sehr lange, bis zu 5 Sekunden. Normalerweise braucht sie 30msec.
Andere Queries brechen nicht so ein.

Nun meine allgemeinen Fragen:
a.) bedeuten diese 5 Sekunden, daß solange die Datenbank mit dieser Query beschäftigt ist ?
Weil ich den Eindruck habe, daß die 5 Sekunden eventuell ein Puffern der Abfrage beinhalten.
b.) was bedeutet das, wenn einige Abfragen unter Last länger dauern und andere nicht ? Kann es mit der Tabellengröße zu tun haben ?
c.) manchmal kriege ich den Fehler '...more than 'max_user_connections' active connections....'. Ich vermute einen Zusammenhang - das Einbrechen der Queries ist immer so das was vor diesem Fehler passiert.
Ich habe die Anzahl der 'max_user_connections' bereits erhöht, aber ohne wirklichen Erfolg.
Was habe ich noch für Möglichkeiten ?

Gruß, Flash