zwelch: query unter mysql 5.0 schnell aber unter 5.1 langsam ...?!

Beitrag lesen

Hallo Forum,

ich beobachte aktuell ein komisches verhalten/Problem. ich habe eine SQL-Abfrage welche unter MySQL 5.0 in 0.1 Sekunden abgearbeitet wird, jedoch unter MySQL 5.1 dauert es sage und schreibe 10 Sekunden. Ich habe das Verhalten jeweils mit der gleichen Datenbank auf verschiedenen Servernn in den beiden Versionen getestet und es ist überall das gleiche Ergebnis zustande gekommen. Woran kann den so etwas liegen, bzw. wie könnte man es beheben?

Hier die Abfrage:

  
set @id_account = 1;  
  
SELECT t.id, t.subject, t.hits, (  
  
SELECT count( p.id ) -1  
FROM elv_board_post p  
WHERE p.id_topic = t.id  
) AS responses, (  
  
SELECT p.date  
FROM elv_board_post p  
WHERE p.id_topic = t.id  
ORDER BY p.date DESC  
LIMIT 1  
) AS last_date, (  
  
SELECT count( w.id_topic )  
FROM elv_board_watch w  
WHERE w.id_topic = t.id  
AND w.id_account = @id_account  
) AS watch, ceil( (  
  
SELECT count( p.id )  
FROM elv_board_post p  
WHERE p.id_topic = t.id ) /25  
) AS last_page  
FROM elv_board_topic t  
ORDER BY (  
  
SELECT p.id  
FROM elv_board_post p  
WHERE p.id_topic = t.id  
ORDER BY p.date DESC  
LIMIT 1  
) DESC  
LIMIT 5  

Viel Zeit wird in der Subquery ORDER BY ([...]) DESC geraubt, aber selbst dann (Also wenn man diese Subquery weg lässt) dauert es mit 0.3 Sekunden zu 0.0002 Sekunden immer noch Verhältnismäßig lange.

Ich hoffe jemand kann mir hierbei helfen.
mfg zwelch