PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : MySQL Query optimieren


MadMan2k
2005-01-25, 16:27:05
ich habe zwei Tabellen (a,b) in denen jeweils n Element eine bestimmte ID haben.
Diese Anzahl möchte ich nun gerne wissen und zusätzlich aus Tabelle a den Inhalt einer Reihe haben.
Tabelle A hat dabei immer mindestens einen Eintrag mit der gewünschten ID.


nun habe ich mir zwei Lösungen ausgedacht und würde gerne wissen, welche die bessere ist.


1)

SELECT a.bla, COUNT(DISTINCT a.ID), COUNT(DISTINCT b.ID)
FROM a
LEFT JOIN b USING (commonID)
WHERE a.commonID = meine ID
GROUP BY a.commonID


2)

SELECT a.bla, COUNT(*)
FROM a
WHERE commonID = meine ID
GROUP BY commonID



SELECT COUNT(*)
FROM b
WHERE commonID = meine ID


es stehen als zwei simple Queries einem aufwendigen ggü.

und wo ich grad dabei bin:

ist mysql_fetch_row() auch dann noch schneller als mysql_result(), wenn man wirklich nur ein einziges Feld aus der Reihe braucht?

noid
2005-01-25, 17:02:21
ich hacke beide dann bei phpadmin ein und drücke "explain". da sieht man dann schon was optimaler ist.

MadMan2k
2005-01-26, 16:48:15
inwieweit bin ich jetzt schlauer?

noid
2005-01-26, 18:53:14
wenn bei beiden herauskommt, dass er die gleiche abfrage in gleicher zeit macht, dann nimm das was dir besser gefällt ;)