Hallo Frank,
Hallo,
wie schnell ist ein einfaches
SELECT user_id, count(*)
FROM fotos
GROUP BY user_id
Version A:
~~~sql
SELECT
u.user_id,
u.name,
f.anzahl
FROM users u
INNER JOIN (
SELECT
user_id,
COUNT(user_id) AS anzahl
FROM fotos
GROUP BY user_id
HAVING anzahl > 5
) f
ON u.user_id = f.user_id
war bei mir (nicht unerwartet) deutlich schneller als
Version B:
SELECT
u.user_id,
u.name,
COUNT(f.id) AS anzahl
FROM users u
INNER JOIN fotos f
ON u.user_id = f.user_id
GROUP BY
u.user_id,
u.name
HAVING anzahl > 5
Testdaten: 200 User, alle über 5 Fotos, 500.000 Fotos
Ausführungszeiten im Bereich von 2 Sekunden (A) zu 0,3 Sekunden (B).
Freundliche Grüße
Vinzenz